List 双向链表容器介绍
List采用双向循环的链表结构组织数据元素,链表中的每个节点包括指向前去的指针、实际数据和指向后继的指针等数据域。
C++标准头文件list:宏语句 “#include <list>”
l 创建list对象
1) List()
创建一个没有任何元素的list对象
List<int> l ;
2) List(size_type n)
创建一个链接有n个元素的list对象,每个元素赛用它的类型下的默认值。
List<int> l(10); //10个元素的初始值都为0
3) List(size_type n,const T& value)
拷贝函数
List<char> l1(5,’k’);
List<char> l2(l1);
4) List(const list &)
将一个list对象的迭代器区间[first , last)所指的元素拷贝到新创建的list对象中。
Int array[] = {19,13,38};
List<int> l(array,array+3);
5) List(inputiterator first , inputiterator last)
l 初始化赋值
Void push_back(const T&)
将元素依次填入链表中,常用于初始化list容器
l 元素的遍历访问
l 元素的插入
1) Void push_front(const T&)
在链表首部插入元素
2) Iterator insert(iterator pos, const T&)
在任意迭代器位置上插入元素
l 元素的删除
1) Void pop_front()
删除链表的第一个元素
2) Void pop_back()
删除链表的最后一个元素
3) Iterator erase(iterator pos)
删除任意迭代器位置上的链表元素
4) Iterator erase(iterator first,iterator last)
删除迭代器区间[first, last)上的链表元素
5) Void clear()
删除链表上所有的list元素
6) Void remove(const T& value)
删除链表上所有元素值为value的元素
l List的交换
Void swap(list &)
交换两个链表list中的所有元素
l List的归并
1) Void splice(iterator position, list &x)
将x的链表归并到当前list链表的position位置之前,x被清空
2) Void splice(iteratro position, list &,iterator i)
将一个list迭代器i值所指的元素归并到当前list链表中,并将被归并的元素从原链表中删除
3) Void merge(list &x)
将一个list对象x归并到当前链表中,并清空x;只有当前list链表和被归并的x的元素均按元素值的小于关系排好序,merge函数才有效。
l List的元素排序
Void sort()
按“<“关系进行list链表元素排序。
l List的连续重复元素的剔除
Void unique()
将连续重复的元素删除,仅保留一个。