C++容器list和deque的基本用法

list

定义和初始化:
list<int>lst1;       //创建空list         list<int> lst2(5);       //创建含有5个元素的list,初始为0
list<int>lst3(3,2);  //创建含有3个元素的list   list<int>lst4(lst2);    //使用lst2初始化lst4
list<int>lst5(lst2.begin(),lst2.end());  //同lst4

常用操作函数:

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的开始位置插入2100。
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.push_front();  q1.pop_back();q1.pop_front();   q1.front();q1.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的开始位置插入100。
q1.insert(q1.begin(),2,200);            在q1的开始位置插入2个100。
q1.insert(q1.end(),q2.begin(),q2.end());   在q1的后面插入q2的所有元素
q1.erase(q1.begin());   q1.erase(q1.begin(),q1.end());
reverse(q1.begin(),q1.end());  完成q1链表的逆置  不能用q1.reverse()
发布了259 篇原创文章 · 获赞 100 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/my_sunshine26/article/details/82596058