当前位置: 首页 > article >正文

14-6-1C++STL的list

(一)list容器的基本概念

list容器简介:

1.list是一个双向链表容器,可高效地进行插入删除元素

2.list不可以随机存取元素,所以不支持at.(pos)函数与[ ]操作符


(二)list容器头部和尾部的操作

list对象的默认构造形式:list<T>lst

list<int> lstInt;

list<float>lstFloat;

list块头尾的添加移除操作

1.list.push_front(elem);//在容器开头插入一个元素

2.lst.push_back(elem);//在容器尾部加入元素

#include <iostream>

#include <list>

using namespace std;

int main()

{

   list<int>lst;

   lst.push_back(10);

   lst.push_front(0);

   list <int>::iterator it;

   for(it=lst.begin() ;it!=lst.end() ;it++)

   {

          cout<<*it<<" ";

   }

   cout<<endl;

   return 0;

}

3.list.pop_back0;//删除容器中最后一个元素

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int>lst;
    lst.push_back(10);
    lst.push_front(0);
    list <int>::iterator it;
    lst.pop_back();
    for(it=lst.begin() ;it!=lst.end() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0; 
}

4.list.pop_front();//从容器开头移除第一个元素

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int>lst;
    lst.push_back(10);
    lst.push_front(0);
    list <int>::iterator it;
    lst.pop_front();
    for(it=lst.begin() ;it!=lst.end() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0; 
}

list的数据存取

  1. list.front();//返回第一个元素

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int>lst;
    lst.push_back(10);
    lst.push_front(0);
    list <int>::iterator it;
    int x=lst.front();
    cout<<"front="<<x<<endl;
    return 0; 
}

2.list.back();//返回最后一个元素

#include <iostream>

#include <list>

using namespace std;

int main()

{

  list<int>lst;

  lst.push_back(10);

  lst.push_front(0);

  list <int>::iterator it;

  int y=lst.back();

  cout<<"back="<<y<<endl;

  return 0;

}

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int>lst;
    lst.push_back(10);
    lst.push_front(0);
    list <int>::iterator it;
    int y=lst.back();
    cout<<"back="<<y<<endl;
    return 0; 
}

数据的修改

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int>lst;
    lst.push_back(10);
    lst.push_front(0);
    list <int>::iterator it;
    lst.front()=100;
    lst.back() =200;
    for(it=lst.begin();it!=lst.end() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0; 
}


(三)list与迭代器

list容器的迭代器是“双向迭代器”:双向迭代器从两个方向读写容器。除了提供前向迭代器的全部操作之外,双向迭代器还提供前置和后置的自减运算

rendbegin......rbeginend

正向1.list.begin();//返容器中第一个元素的迭代器

正向2.list.end();//返回容器中最后一个元素之后的迭代器

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int>lst;
    lst.push_back(1); 
    lst.push_back(2);
    lst.push_back(3);
    lst.push_back(4) ;

    list <int>::iterator it;
   
    for(it=lst.begin();it!=lst. end() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0; 
}

反向3.list.rbegin();//返回容器中倒数第一个元素的迭代器

反向4.list.rend();//返回容器中倒数最后一个元素的后面的迭代器

#include <iostream>
#include <list>
using namespace std;
int main()
{
    list<int>lst;
    lst.push_back(1); 
    lst.push_back(2);
    lst.push_back(3);
    lst.push_back(4) ;

    list <int>::reverse_iterator it;
   
    for(it=lst.rbegin();it!=lst.rend() ;it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
    return 0; 
}

相关文章:

14-6-1C++STL的list

(一&#xff09;list容器的基本概念 list容器简介&#xff1a; 1.list是一个双向链表容器&#xff0c;可高效地进行插入删除元素 2.list不可以随机存取元素&#xff0c;所以不支持at.(pos)函数与[ ]操作符 &#xff08;二&#xff09;list容器头部和尾部的操作 list对象的默…...

【AI论文】Sigma:对查询、键和值进行差分缩放,以实现高效语言模型

摘要&#xff1a;我们推出了Sigma&#xff0c;这是一个专为系统领域设计的高效大型语言模型&#xff0c;其独特之处在于采用了包括DiffQKV注意力机制在内的新型架构&#xff0c;并在我们精心收集的系统领域数据上进行了预训练。DiffQKV注意力机制通过根据查询&#xff08;Q&…...

InceptionV1_V2

目录 不同大小的感受野去提取特征 经典 Inception 网络的设计思路与运行流程 背景任务&#xff1a;图像分类&#xff08;以 CIFAR-10 数据集为例&#xff09; Inception 网络的设计思路 Inception 网络的运行流程 打个比方 多个损失函数的理解 1. 为什么需要多个损失函数&#…...

ORB-SLAM2源码学习:Initializer.cc⑧: Initializer::CheckRT检验三角化结果

前言 ORB-SLAM2源码学习&#xff1a;Initializer.cc⑦: Initializer::Triangulate特征点对的三角化_cv::svd::compute-CSDN博客 经过上面的三角化我们成功得到了三维点&#xff0c;但是经过三角化成功的三维点并不一定是有效的&#xff0c;需要筛选才能作为初始化地图点。 …...

【ArcGIS微课1000例】0141:提取多波段影像中的单个波段

文章目录 一、波段提取函数二、加载单波段导出问题描述:如下图所示,img格式的时序NDVI数据有24个波段。现在需要提取某一个波段,该怎样操作? 一、波段提取函数 首先加载多波段数据。点击【窗口】→【影像分析】。 选择需要处理的多波段影像,点击下方的【添加函数】。 在多…...

【测试人生】变更风险观测的流程逻辑设计

在线上服务变更过程中&#xff0c;我们希望可以通过一套实时观测机制去监测线上服务的风险&#xff0c;从而能够确保线上稳定性&#xff0c;在出问题是可以及时回滚变更。今天这篇文章&#xff0c;就简单讲一下变更风险观测的流程逻辑需要怎么设计。 首先需要明确变更观测的相…...

一文大白话讲清楚webpack基本使用——17——Tree Shaking

文章目录 一文大白话讲清楚webpack基本使用——17——Tree Shaking1. 建议按文章顺序从头看&#xff0c;一看到底&#xff0c;豁然开朗2. 啥叫Tree Shaking3. 什么是死代码&#xff0c;怎么来的3. Tree Shaking的流程3.1 标记3.2 利用Terser摇起来 4. 具体使用方式4.1 适用前提…...

ChatGPT从数据分析到内容写作建议相关的46个提示词分享!

在当今快节奏的学术环境中&#xff0c;研究人员面临着海量的信息和复杂的研究任务。幸运的是&#xff0c;随着人工智能技术的发展&#xff0c;像ChatGPT这样的先进工具为科研人员提供了强大的支持。今天就让我们一起探索如何利用ChatGPT提升研究效率进一步优化研究流程。 ChatG…...

PyCharm配置Python环境

1、打开PyCharm项目 可以从File-->Open-->选择你的项目路径-->OK&#xff0c;或者直接点击Open&#xff0c;找到项目路径-->OK&#xff0c;如图所示(点击Ok后可能有下面的弹窗&#xff0c;选择“Trust Project”即可&#xff0c;然后选择“New Window”打开项目) …...

c#配置config文件

1&#xff0c;引用命名空间 Configuration 及配置信息...

RDMA 工作原理 | 支持 RDMA 的网络协议

注&#xff1a;本文为 “RDMA” 相关文章合辑。 英文引文机翻未校。 图片清晰度受引文所限。 Introduction to Remote Direct Memory Access (RDMA) Written by: Dotan Barak on March 31, 2014.on February 13, 2015. What is RDMA? 什么是 RDMA&#xff1f; Direct me…...

01-硬件入门学习/嵌入式教程-CH340C使用教程

前言 CH340C广泛应用于DIY项目和嵌入式开发中&#xff0c;用于USB数据转换和串口通信。本文将详细介绍CH340C的基本功能、引脚接线及使用方法。 CH340C简介 CH340C是一款USB转TTL电平转换器&#xff0c;可以将电脑的USB数据转换成串口数据&#xff0c;方便与单片机&#xff…...

STM32——LCD

一、引脚配置 查看引脚 将上述引脚都设置为GPIO_Output 二、导入驱动文件 将 LCD 驱动的 Inc 以及 Src 中的 fonts.h,lcd.h 和 lcd.c 导入到自己工程的驱动文件中。 当然&#xff0c;后面 lcd 的驱动学习可以和 IMX6U 一块学。 三、LCD函数 void LCD_Clear(u16 Color); 功能…...

破解浏览器渲染“死锁”:CSS与JS如何影响页面加载速度?

破解浏览器渲染“死锁”&#xff1a;CSS与JS如何影响页面加载速度&#xff1f; 在这个快速发展的Web世界里&#xff0c;性能是开发者们永恒的追求。当你打开一个网页&#xff0c;可能会注意到一些页面加载特别慢&#xff0c;甚至产生短暂的“白屏”&#xff0c;你有没有想过&a…...

操作系统(Linux Kernel 0.11Linux Kernel 0.12)解读整理——内核初始化(main init)之内存的划分

前言 MMU&#xff1a;内存管理单元(Memory Management Unit)完成的工作就是虚拟地址到物理地址的转换&#xff0c;可以让系统中的多个程序跑在自己独立的虚拟地址空间中&#xff0c;相互不会影响。程序可以对底层的物理内存一无所知&#xff0c;物理地址可以是不连续的&#x…...

.NET MAUI进行UDP通信(二)

上篇文章有写过一个简单的demo&#xff0c;本次对项目进行进一步的扩展&#xff0c;添加tabbar功能。 1.修改AppShell.xaml文件&#xff0c;如下所示&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <Shellx:Class"mauiDemo.AppShel…...

社区养老服务平台的设计与实现(代码+数据库+LW)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…...

生信软件管家——conda vs pip

pip vs conda&#xff1a; 安装过python包的人自然两种管理软件都用过&#xff0c; Pip install和Conda install在Python环境中用于安装第三方库和软件包&#xff0c;但它们在多个方面存在显著的区别 总的来说&#xff1a; pip是包管理软件&#xff0c;conda既是包管理软件&…...

项目文章 | PNAS 斑马鱼转录因子ChIP-seq助力解析GATA6突变相关的肝脏疾病机制

近日&#xff0c;西南大学阮华/黄红辉团队联合重庆大学邱菊辉/王贵学团队在PNAS发表了题为“An animal model recapitulates human hepatic diseases associated with GATA6 mutations”的研究论文。该研究构建了一个gata6敲除斑马鱼模型&#xff0c;它重现了gata6突变患者的大…...

JavaScript系列(44)--微服务架构实现详解

JavaScript微服务架构实现详解 &#x1f3d7;️ 今天&#xff0c;让我们来学习如何在JavaScript中实现微服务架构。微服务架构是一种将应用程序构建为一组小型服务的方法&#xff0c;每个服务运行在自己的进程中&#xff0c;并通过轻量级机制通信。 微服务基础概念 &#x1f…...

Vue组件开发-使用 html2canvas 和 jspdf 库实现PDF文件导出 设置页面大小及方向

在 Vue 项目中实现导出 PDF 文件、调整文件页面大小和页面方向的功能&#xff0c;使用 html2canvas 将 HTML 内容转换为图片&#xff0c;再使用 jspdf 把图片添加到 PDF 文件中。以下是详细的实现步骤和代码示例&#xff1a; 步骤 1&#xff1a;安装依赖 首先&#xff0c;在项…...

Java-并发编程-特性-可见性-synchronized如何保证可见性?

synchronized 能保证可见性吗&#xff1f; 在Java并发编程中&#xff0c;synchronized 关键字不仅用于实现互斥访问&#xff0c;还能够保证内存可见性。理解这一点需要了解Java内存模型&#xff08;Java Memory Model&#xff0c;JMM&#xff09;以及happens-before&#xff0…...

iOS 权限管理:同时请求相机和麦克风权限的最佳实践

引言 在开发视频类应用时&#xff0c;我们常常会遇到需要同时请求相机和麦克风权限的场景。比如&#xff0c;在用户发布视频动态时&#xff0c;相机用于捕捉画面&#xff0c;麦克风用于录制声音&#xff1b;又或者在直播功能中&#xff0c;只有获得这两项权限&#xff0c;用户…...

【深入理解FFMPEG】命令行阅读笔记

这里写自定义目录标题 第三章 FFmpeg工具使用基础3.1 ffmpeg常用命令3.1.13.1.3 转码流程 3.2 ffprobe 常用命令3.2.1 ffprobe常用参数3.2.2 ffprobe 使用示例 3.3 ffplay常用命令3.3.1 ffplay常用参数3.3.2 ffplay高级参数3.3.4 ffplay快捷键 第4章 封装与解封装4.1 视频文件转…...

数据结构:二叉树—面试题(二)

1、二叉树的最近公共祖先 习题链接https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/ 描述&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点…...

【C++高并发服务器WebServer】-6:信号

本文目录 信号的概念1.1 core文件1.2 kill命令1.3 alarm函数1.4 setitimer调用1.5 signal捕捉信号1.6 信号集1.7 内核实现信号捕捉的过程1.8 sigaction1.9 sigchld 信号的概念 信号是 Linux 进程间通信的最古老的方式之一&#xff0c;是事件发生时对进程的通知机制&#xff0c…...

《探秘人工智能:从基础到未来变革》

在当今科技飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;无疑是最具影响力和变革性的技术之一。从手机里智能语音助手到自动驾驶汽车&#xff0c;从智能医疗诊断到智能金融服务&#xff0c;人工智能已经渗透到我们生活和工作的方方面面&#xff0c;悄然改变着…...

【数据分享】1929-2024年全球站点的逐月平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff01;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2024年全球气象站点…...

【PyTorch】3.张量类型转换

个人主页&#xff1a;Icomi 在深度学习蓬勃发展的当下&#xff0c;PyTorch 是不可或缺的工具。它作为强大的深度学习框架&#xff0c;为构建和训练神经网络提供了高效且灵活的平台。神经网络作为人工智能的核心技术&#xff0c;能够处理复杂的数据模式。通过 PyTorch&#xff0…...

不解释快上车

聊一聊 最近有小伙伴问我有小红书图片和短视频下载的软件吗&#xff0c;我心想&#xff0c;下载那上面的图片和视频做什么&#xff1f;也许是自己没有这方面的需求&#xff0c;不了解。 不过话又说回来&#xff0c;有些很多下载器可能作者没有持续的维护&#xff0c;所以可能…...