list
定义和初始化:
list<int>lst1;
list<int>lst3(3,2);
list<int>lst5(lst2.begin(),lst2.end());
常用操作函数:
list<int>L1,L2;
L1=L2 将L2赋值给L1 L2不变
L1.push_back();L1.push_front(); L1.pop_back();L1.pop_front(); L1.front();L1.back();
L1.assign(n,val) :把L1中的所有元素替换成n个val元素
L1.assign(L2.begin(),L2.end()) :把L1中的所有元素替换成L2中的所有元素
L1.swap(L2)或者 swap(L1,L2) :完成L1链表和L2链表的交换
reverse(L1.begin(),L1.end());或L1.reverse(): 完成L1链表的逆置
L1.merge(L2) 调用结束后L2变为空,L1中元素包含原来L1和L2的元素,且有序(默认升序)
降序可以是L1.merge(L2,less<int>()) 需要保证原来的链表是有序的
L1.insert(L1.begin(),100); 在L1的开始位置插入100。
L1.insert(L1.begin(),2,200); 在L1的开始位置插入2个100。
L1.insert(L1.end(),L2.begin(),L2.end()); 在L1的后面插入L2的所有元素
L1.remove(7) 删除L1中所有的7
L1.erase(L1.begin()); L1.erase(L1.begin(),L1.end());
L1.sort(); 排序(默认升序) L1.unique() 删除L1中的重复元素
L1.splice(L1.end(),L2); 合并两个list L2变为空
deque
定义和初始化: 类似于list
常用操作函数:
deque<int>q1,q2
q1.push_back()
q1[idx] q1.at(idx) 返回q1中的第idx个元素 (idx从1开始,后者会进行越界判断)
q1=q2 将q2赋值给q1 q2不变
q1.assign(n,val) :把q1中的所有元素替换成n个val元素
q1.assign(q2.begin(),q2.end()) :把q1中的所有元素替换成q2中的所有元素
q1.insert(q1.begin(),100)
q1.insert(q1.begin(),2,200)
q1.insert(q1.end(),q2.begin(),q2.end())
q1.erase(q1.begin())
reverse(q1.begin(),q1.end())