STL--list
2018-03-29 本文已影响0人
7bfedbe4863a
前言
什么是STL?
STL(Standard Template Library)标准模板库,它从根本上来说是一些“容器”的集合(包括list、vector、set、map、stack等)。
- 头文件:
algorithm、deque、functional、iterator、array、vector、list、map、memory、numeric、queue、set、unordered_set、stack、utility
STL之list
list的本质其实就是一个双向链表,可以很高效的进行插入和删除元素,但是呢,它也有链表本身的限制,即不能进行随机读取。
- 构造:
list list0; //空链表
list list1(7); //建一个含有7个默认值是0的元素的链表
list list2(5, 7); //建一个含有5个值为7的元素的链表
list list3(c2); //拷贝构造
list list4(c1.begin(), c1.end()); //新建的这个链表是拷贝了c1相应区间 - 方法:
assign(); //分配值
back(); //返回最后一个元素的引用
begin(); //返回第一个元素的指针
clear(); //删除所有的元素
empty(); //判断是否链表为空
erase(); //删除一个元素或者一个区域的元素
front(); //返回第一个元素的引用
insert(); //在制定位置插入一个或多个元素
max_size(); //返回链表最大可能长度
merge(); //合并两个链表并使之默认升序(顺序可改)
pop_back(); //删除链表尾的一个元素
pop_front(); //删除链表头的一个元素
push_back(); //在链表尾添加一个元素
push_front(); //在链表头添加一个元素
rbegin(); //返回链表最后一元素的后向指针
rend(); //返回链表第一个元素的下一位置的后向指针
remove(); //删除链表中匹配的元素(只要是匹配成功的都要删除)
remove_if(); //删除条件满足的元素(先遍历一遍链表,然后再选择满足条件的删除)
resize(); //重新定义链表的长度
reverse(); //反转链表
size(); //返回链表中元素个数
sort(); //对链表排序,默认升序(顺序可改)
splice(); //对两个链表进行结合
swap(); //交换两个链表
unique(); //删除相邻重复元素(一般是要已经排序好了的)