list容器[通俗易懂]

list容器

大家好,又见面了,我是全栈君。

双向循环链表list

list是双向循环链表,每个元素都知道前面一个元素和后面一个元素。

list和vector的差别:

  1. 在list中,因为其内存分配是非连续的,因此不能像vector那样用[]操作符取值。而仅仅能用迭代器来訪问list中的元素
  2. list中提供的成员函数与vector类似。只是list提供对表首元素的操作: push_front()、pop_front()。这是vector不具备的。


样例:

int data[6]={3,5,7,9,2,4};  
list<int> lidata(data, data+6);  
lidata.push_back(6);  
...

       list初始化时,申请的空间大小为6。存放下了data中的6个元素,当向lidata插入第7个元素“6”时。list申请新的节点单元,插入到list链表中,数据存放结构例如以下图所看到的:

 

list容器[通俗易懂]

     list每次添加一个元素,不存在又一次申请内存的情况,它的成本是恒定的。

而vector每当添加关键元素的时候,都须要又一次申请新的更大的内存空间,会调用元素的自身的复制构造函数。存在构造成本。在销毁旧内存的时候,会调用析构函数。存在析构成本。所以在存储复杂类型和大量元素的情况下,list比vector更有优势! 

   List是一个双向链表,双链表既能够向前又能够向后链接它的元素。

   List将元素按顺序储存在链表中,与向量(vector)相比, 它同意高速的插入和删除。可是随机訪问却比較慢。

assign() 给list赋值 

back() 返回最后一个元素 

begin() 返回指向第一个元素的迭代器 

clear() 删除全部元素 

empty() 假设list是空的则返回true 

end() 返回末尾的迭代器 

erase() 删除一个元素 

front() 返回第一个元素 

get_allocator() 返回list的配置器 

insert() 插入一个元素到list中 

max_size() 返回list能容纳的最大元素数量 

merge() 合并两个list 

pop_back() 删除最后一个元素 

pop_front() 删除第一个元素 

push_back() 在list的末尾加入一个元素 

push_front() 在list的头部加入一个元素 

rbegin() 返回指向第一个元素的逆向迭代器 

remove() 从list删除元素 

remove_if() 按指定条件删除元素 

rend() 指向list末尾的逆向迭代器 

resize() 改变list的大小 

reverse() 把list的元素倒转 

size() 返回list中的元素个数 

sort() 给list排序 

splice() 合并两个list 

swap() 交换两个list 

unique() 删除list中反复的元素

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116139.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 国内最著名的公用CDN BootCDN停止服务

    国内最著名的公用CDN BootCDN停止服务今天打开博客的时候 发现网站所有引用 bootCDN 的资源全部无法加载 并且打开 bootCDN 搜索的资源地址都指向了 cdnjs cloudflare com 难道是遭受

    2025年9月12日
    4
  • 五种聚类方法_聚类分析是一种降维方法吗

    五种聚类方法_聚类分析是一种降维方法吗本文为雷锋字幕组编译的技术博客,原标题The5ClusteringAlgorithmsDataScientistsNeedtoKnow,作者为GeorgeSeif。聚类是一种关于数据点分组的机器学习技术。给出一组数据点,我们可以使用聚类算法将每个数据点分类到特定的组中。理论上,同一组中的数据点应具有相似的属性或特征,而不同组中的数据点应具有相当不同的属性或特征(即类内差异小,…

    2022年10月20日
    3
  • vmware虚拟机重装系统_ubuntu下安装虚拟机

    vmware虚拟机重装系统_ubuntu下安装虚拟机VMware下载地址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html下载之后按步骤安装即可。安装完成后需要密钥,这里给出VMwareWorkstationPro16的密钥:YF390-0HF8P-M81RQ-2DXQE-M2UT6ZF71R-DMX85-08DQY-8YMNC-PPHV8密钥输入完成就可永久使用。ubuntu:首先下载Ubuntu的镜像,我下载的是ubuntu

    2025年11月18日
    4
  • 蒲式耳,磅换算成公斤和吨

    蒲式耳,磅换算成公斤和吨一个小东西,给自己留作备份用的<!DOCTYPEhtml><htmllang="en"><head><metacharset

    2022年8月3日
    5
  • CMSIS的简介_CMSInitiatingOccupancyFraction

    CMSIS的简介_CMSInitiatingOccupancyFractionCortex微控制器软件接口标准(CortexMicrocontrollerSoftwareInterfaceStandard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由A

    2022年8月6日
    14
  • ideaj pro2021.4 激活码_通用破解码

    ideaj pro2021.4 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号