首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

list容器

双向循环链表list list是双向循环链表,每个元素都知道前面一个元素和后面一个元素。...list和vector的差别: 在list中,因为其内存分配是非连续的,因此不能像vector那样用[]操作符取值。而仅仅能用迭代器来訪问list中的元素。...list申请新的节点单元,插入到list链表中,数据存放结构例如以下图所看到的: list每次添加一个元素,不存在又一次申请内存的情况,它的成本是恒定的。...插入一个元素到list中 max_size() 返回list能容纳的最大元素数量 merge() 合并两个list pop_back() 删除最后一个元素 pop_front(...() 把list的元素倒转 size() 返回list中的元素个数 sort() 给list排序 splice() 合并两个list swap() 交换两个list unique

46800
您找到你想要的搜索结果了吗?
是的
没有找到

【C++】手搓 list 容器

不同于连续的、紧密排列的数组容器Vector,List容器的内部是由双向链表构成的,使得它在插入和删除操作上,就如同行云流水一般顺畅,不需移动其它元素。...1.1 底层结构 List容器的底层结构,是一个经典的带头双向循环链表。每个节点包含: 数据 指向前一个节点的指针 指向后一个节点的指针。...这种结构赋予了List灵动的特性:它能够轻松地在任意位置增加或移除元素,而这种操作几乎是与容器大小无关的,体现了时间复杂度上的优势。...因为List的顺序访问性能相比之下会显得有些力不从心。 所以如果需要频繁随机的访问数据,那么选择vector容器 如果需要频繁插入删除数据,那么选择list容器 排序不要选择list !!!...1.3 功能简介 功能简介我们可以参考STL官方库 :list文档介绍 插入与删除:List的插入和删除操作非常高效,它可以在任意位置快速地添加或移除元素,而不需要像连续内存容器那样进行大量元素的移动。

4910

STL学习笔记(8)常用容器 list

而且,对于任何位置的元素插入或元素的移除,list 永远是常数时间。 list 和 vector 是两个最常被使用的容器。 ? list 容器是一个双向链表。...链表灵活,但是空间和时间额外耗费较大 list 容器的迭代器 List 容器不能像 vector 一样以普通指针作为迭代器,因为其节点不能保证在同一块连续的内存空间上。...由于 list 是一个双向链表,迭代器必须能够具备前移、后移的能力,所以 list 容器提供的是 Bidirectional Iterators....2. list 数据元素插入和删除操作 push_back(elem);//在容器尾部加入一个元素 pop_back();//删除容器中最后一个元素 push_front(elem);//在容器开头插入一个元素...3. list 大小操作 size();//返回容器中元素的个数 empty();//判断容器是否为空 resize(num);//重新指定容器的长度为 num, 若容器变长,则以默认值填充新位置。

40520
领券