STL::list

Posted zpcoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL::list相关的知识,希望对你有一定的参考价值。

list: 是一个双向链表。和 forward_list(单向链表)相似。

Constructor(同 vector 相似)

default:

fill:

range:

copy:

move:

initializer list:

Iterator(同 vector)

begin:

end:

rbegin:

rend:

cbegin:

cend:

crbegin:

crend:

Capacity

empty:

size:

max_size:

Element access(同 vector 类似)

front:

back:

Modifiers

assign: 重新赋予 list 的内容(用法同 vector::assign),三种方式:range; fill; initializer list;

emplace(c++11):

emplace_front(c++11):

emplace_back(c++11):

push_front:

pop_front:

push_back:

pop_back:

 

insert:

erase: 范围擦除 [first,last);同 vector::erase;

swap:

resize:

clear:

Operations

splice: 从一个容器中的元素转运(非复制)到到另一个容器中;三种用法:entire list; single element; element range;

remove: 通过值来移除元素(erase 通过位置(iterator)移除元素);改变容器的 size;  

remove_if: 参数要么是一个函数指针,要么是一个函数对象,函数为一个返回值是 bool 的函数,该函数调用容器中的每一个元素,移除使函数返回值为 true 的元素。

unique:删除重复元素,也可以传入函数或者类对象,进行扩展相等性的判断。

merge:有序合并两个链表(两个链表已经各自有序,按照当前排序进行转运元素(非复制)),也可以指定 cmp 函数进行比较规则的自定义。(list::splice 无序的合并操作)

sort: 排序,默认顺序为升序排列,可以传入函数名(函数指针),函数返回值为 bool 型。以返回值为 true  的顺序排列,是一个稳定排序(相同元素的相对位置不会发生变化)。

reverse: 将容器内的元素顺序翻转。

 

补充:strict weak sorting:严格弱排序,严格是说在判断的时候会用 “<” 而不是 “<=”,弱排序是因为,一旦 “<” 成立便认为存在 “<” 关系,返回 ture, 而忽略了 “=” 关系和 “>” 的区别,把它们归结为 false 。  referce-->https://blog.csdn.net/xingliang_liu/article/details/3855390

以上是关于STL::list的主要内容,如果未能解决你的问题,请参考以下文章

C++初阶:STL —— listlist的介绍及使用 | list的深度剖析及模拟实现 | list与vector的对比