C++的list的函数

来源:互联网 发布:mac下载软件可以删 编辑:程序博客网 时间:2024/06/06 06:49

List 用法小结

 

结构体函数:

无参数的:

list <type> l ; 就是新建一个空的链表

1个参数的:

list <type> l ( n ) ; 就是建立一个有n个元素的链表,这些元素的值都是默认的

list <type>l ( t ) // t是个list<type> ; 就是建立一个和t一模一样的链表

2个参数的:

list <type> l ( n , x ) ; 就是建立一个有n个元素的链表,这些元素的值都初始化为x

int array[]={1,2,3} ; list <type>l ( array , array + 3 ) ; 将另一个list对象的迭代器区间

[ first , last )/*注意右边界是不包括的*/的内容拷贝到新的list对象中

嗯结构体函数大概就这么多

 

对数据的操作:

l.push_back ( x ) 在链表l的尾部插入type类数据x , l.pop_back()是删除链表尾部的一个元素

l.push_front ( x ) 在链表l的首部插入type类数据x ,l.pop_front()是删除链表首部一个元素

list <type>::iterator iter ; iter = l.begin() ; iter ++ ; l.insert ( iter , x ) /*这里需要注意list里的迭代器不能直接+n,必须得++或--,一个一个挪*/ 插入一个元素x在链表的iter所指的位置之前  对应的删除是l.erase ( iter ) ,将iter所指向的元素删除,实际上那么iter也就没用了,故一般新开一个专门用来删除的迭代器。—— l.erase (iter_first , iter_last ) 将iter_first到iter_last之间的元素(包括iter_first ,不包括 iter_last) 删除

另外还有一个特殊的删除,l.remove( value ) 删除链表中所有值为value的节点

 

这些函数之外,当然还有这么些东西:

empty ()/*返回是否list为空,为空则真*/

clear () /*将链表清空~*/

sort () /*将链表里的元素排序*/

begin () /*返回指向首位的迭代器*/

end ()/*返回指向末位的迭代器*/

front () /*返回首位值*/

back () /*返回末位值*/

l_1.swap ( l_2 ) /*顾名思义,将l_1和l_2的内容全部调换*/

l.splice ( iter , l_2 ) /*将l_2归并到l的iter指向的元素之前并清空l_2*/

l.splice ( iter , l_2 , iter_2 ) /*把l_2中iter_2所指向的元素归并到l中iter所指向的元素前面并清空l_2*/

merge()没用过。