简述:
list是stl的一个容器,本质上就是一个双向链表,能够支持O(1)的插入和删除。但list的查找却是O(n),无法用二分优化,因为list的存取方式不是随机存取,所以也就没有find函数了。
定义:
list<int> li; list<int>::iterator it;
常见操作:
(1)容量
•li.size(); 容器内数量
•li.empty(); 判空
•li.clear(); 清空
•li.resize(n); 重新定义list,超出部分用0代替
•li.resize(n,num); 重新定义list,超出部分用num代替
(2)返回信息
•li.front(); 返回链首第一个元素
•li.back(); 返回链位第一个元素
•li.begin(); 返回链首迭代器
•li.end(); 返回链尾迭代器
(3)操作
•li.push_back(x); 在链尾插入x
•li.pop_back(); 链尾元素出链
•li.push_front(x); 在链头插入x
•li.pop_front(); 链头元素出链
•li.erase(pos); 删除pos位置的元素,会使迭代器失效,会返回下一位置迭代器
•li.remove(x); 删除链表中匹配x的元素
•li.unque(); 在相邻元素中去重
•li.reverse(); 翻转链表
•li.insert(pos,x); 在pos位置插入元素x
•li.insert(pos,n,x); 在pos位置插入n个x
•li.insert(pos,beg,end); 在pos位置插入另一容器beg到end位置的元素
•li.merge(li2); 将li2的元素放到li里并排序
•li.splice(pos,li2); 将li2的元素衔接到li的pos位置
•c1.splice(c1.beg,c2,c2.beg,c2.end)将c2的[beg,end)位置的元素连接到c1的beg位置并且释放c2的[beg,end)位置的元素