一,概述
List将元素按顺序储存在链表中.与向量(vectors)相比,它允许快速的插入和删除,但是随机访问却比较慢。
list 不仅是一个双向链表,而且是一个环状双向链表
二,使用
#include <list>
using namespace std;
注意:list是一个“前闭后开”的区间,即
list<int> lt(10,6); //建立10个元素为6的链表
cout<<*(lt.end()) ; //输出乱码
cout<<*(--lt.end());//输出最后一个元素 6
三,主要函数
assign()
给list赋值
back()
返回最后一个元素
begin()
返回指向第一个元素的迭代器
clear()
删除所有元素
empty()
如果list是空的则返回true
end()
返回末尾的迭代器
erase()
删除一个元素
front()
返回第一个元素
get_allocator()
返回list的配置器
insert(iteator,10)
插入一个元素10到元素迭代其 iteator之前,一般iteator=find(list.begin(),list.end(),3)
max_size()
返回list能容纳的最大元素数量
merge(list<T> &x) 将x合并到 *this
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(iterator position ,list &x) // list.splice(position,list2) //list2合并到list中position 之前
splice(iterator position ,list &x,iterator i) // 元素插入到list中position 之前
splice(iterator position ,list &x,iterator first,iterator last) //first - last 之间的元素插入到 list中position之前
swap()
交换两个list
unique()
删除list中重复的元素
四,示例
五,示例输出:
四,补充:STL标准函数find进行vector 、list链表查找
分享到:
相关推荐
STL 是“Standard Template Library”的缩写,中文译为“标准模板库”。...例如,vector 的底层为顺序表(数组),list 的底层为双向链表,deque 的底层为循环队列,set 的底层为红黑树,hash_set 的底层为哈希表。
使用C++双向列表统计文章单词出现频率,其中双向列表模仿STL中的List.
对于C++的STL的双向链表,排序算法有的模板并没有实现,因此给出来,大家参考。
主要为大家详细介绍了C++ STL入门教程第二篇,list双向链表使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
实现c++ list部分功能,内存自管理 函数的使用和c++ stl list类似,并不完全相同 简单测试过,并不保证完全无错,仅供参考
第8章 list双向链表容器 第9章 slist单向链表容器 第10章 bit_vector位向量容器 第11章 set集合容器 第12章 multiset多重集合容器 第13章 map映照容器 第14章 multimap多重映照容器 第15章 hash_set哈希集合容器 第...
C++中STL的List链表容器的自行实现,自行实现迭代器、类、封装函数等
这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL,详细介绍了list的用法与应用
第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...
心希盼 c++ STL 单链表源码 主要仿照STL封装了单链表 包括 它的迭代器 详细请看“心希盼 List.doc”文件
使用C++ 代码编写的一个链表,类似于C++ STL中的容器list。可以放入任何类型的数据,通过迭代器访问链表。涉及到的技术很多。
第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...
C++链表基于类实现多项式的加法和乘法; C ++ list class-based polynomial addition and multiplication.
第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...
C++实现的模板链表类,没有用到STL的list,是用指针实现的。
STL 中的list 就是一 双向链表,可高效地进行插入删除元素。 list不支持随机访问。所以没有 at(pos)和operator[]。 list 对象list1, list2 分别有元素list1(1,2,3),list2(4,5,6) 。list< int>::iterator it; 构造...
2.2 C++ LIST(双向链表) 2.3 C++ DEQUE(双向队列) 2.4 三者比较 3 关联容器 3.1 特点 3.2 C++ SETS & MULTISETS 3.3 C++ MAPS & MULTIMAPS 4 容器适配器 4.1 特点 4.2 C++ STACKS(堆栈) 4.3 C++ QUEUES...
17循环链表 18双项链表 19链式栈 20链式队列 21STL_list类 22基数排序 23属 24二叉树 25二叉树找数 26红黑树 27红黑树_0 28红黑树_1 29红黑树_2 30红黑树_3 31红黑树_4 32红黑树_5 33红黑树_6 34堆 35堆排序 36...
C语言下开发的双链表算法,模拟C++中STL接口说明,可以在嵌入式C语言中直接使用。