stl list容器用法总结:
1.list特点
-
STL中的list是一个双向循环链表
-
链表的存储方式不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器
-
优点:
(1)采用动态存储分配,不会造成内存浪费和溢出
(2)链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素
-
缺点:
(1)空间(指针域)和时间(遍历)额外耗费较大
(2)list有一个重要的性质,插入操作和删除操作都不会造成原有list迭代器的失效,这在vector是不成立的
2.构造函数
list<T> lst; //list采用采用模板类实现,对象的默认构造形式
list(beg,end); //构造函数将[beg, end)区间中的元素拷贝给本身
list(n,elem); //构造函数将n个elem拷贝给本身
list(const list &lst); //拷贝构造函数
3.插入和删除函数
push_back(elem); //尾插
pop_back(); //尾删
push_front(elem); //头插
pop_front(); //头删
iterator insert(iterator pos,elem); //在pos位置插elem元素的拷贝,返回新数据的位置
void insert(iterator pos,n,elem); //在pos位置插入n个elem数据,无返回值
void insert(iterator pos,beg,end); //在pos位置插入[beg,end)区间的数据,无返回值
//删除迭代器[beg,end)区间的数据,返回下一个数据的迭代器
iterator erase(iterator beg,iterator end);
iterator erase(pos); //删除迭代器pos的数据,返回下一个数据的迭代器
remove(elem); //删除容器中所有与elem值匹配的元素。
clear(); //清空容器
4.数据存取函数
front(); //返回第一个元素。
back(); //返回最后一个元素。
5.反转和排序函数
reverse(); //反转链表
sort(); //链表排序,list容器的成员函数