list(双向链表)
头文件:#include <list>
双向链表容器,对于添加删除操作特别高效,对于查找操作为**O(n)**的时间复杂度
不可随机存储元素,不可使用[]和at()
采用模板类实现,其默认构造形式:list<T> lis;
函数部分:
lis.push_back(num);//往容器尾部加入一个元素
lis.pop_back();//删除容器尾部最后一个元素
lis.push_front(num);//往容器头部加入元素
lis.pop_front();//删除容器头部元素
lis.front();//返回第一个元素
lis.back();//返回最后一个元素
list(n,num);//构造函数将n个num值拷贝给自身
list(const list &lis);//拷贝构造函数
list &operator=(const list &lis);//重载等号操作符
lis.assign(beg.end);//将[beg,end)区间中的数据拷贝赋值给本身,区间为左闭右开
lis.assign(n,num);//将n个num元素拷贝赋值给自身
lis.swap(lst);将lst与本身元素进行互换
lis.size();//返回容器中元素个数
lis.empty();//判断容器中是否为空
lis.resize(num);//重新指定容器长度为num,如果容器变长则以默认值填充新位置,如果容器变短则超出长度被删除
lis.resize(num,elem);//重新指定容器长度为num,如果容器变长则以elem填充新位置,如果容器变短则超出长度被删除
lis.insert(pos,num);//在pos位置插入num元素,返回新数据位置,注意返回值是iterator
lis.insert(pos,n,elem);//在pos位置插入n个elem元素,无返回
lis.insert(pos,beg,end);//在pos位置插入[beg,end)区间元素,无返回
lis.clear();//删除容器所有数据
lis.erase(beg,end);//删除区间[beg,end)的数据,返回下一个位置,返回值是iterator,同时区间为左闭右开
lis.erase(pos);//删除pos位置的数据,返回下一个位置,返回值是iterator
its.remove(num);//删除容器中所有与num匹配的元素;
reverse();//反转链表,库函数,其他的顺序容器也可以调用,如vector
lis.max_size();//返回list能容纳的最大元素
list.sort();//给list排序
list.unique();//删除list中重复元素
迭代器
lis.begin();//返回容器中第一个元素的迭代器
lis.end();//返回容器中最后一个元素后一位(外空间)的迭代器
lis.rbegin();//返回容器中倒数第一个元素的迭代器
its.rend();//返回容器中倒数最后一个元素的后面一位(外空间)的迭代器
顺序容器到一段落,下次更新关联容器