1.list 插入和删除
功能描述:
对list容器进行数据的插入和删除
函数原型:
1.push_back(elem); //在容器尾部加入一个元素
2.pop_back0; //删除容器中最后一个元素
3.push_front(elem); //在容器开头插入一个元素
4.pop_front(); //从容器开头移除第一个元素
5.insert(pos,elem); //在pos位置插elem元素的拷贝,返回新数据的位置
6.insert(pos,n,elem); //在pos位置插入n个elem数据,无返回值.
7.insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据,无返回值.
8.clear(); //移除容器的所有数据
9.erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置
10.erase(pos); //删除pos位置的数据,返回下一个数据的位置
11.remove(elem); //删除容器中所有与elem值匹配的元素
//创建
listL;
//尾插
L.push_back(10);
//头插
L.push_front(100);
//尾删
L.pop_back();
//头删
L.pop_front();
//5.insert插入
L.insert(L.begin(), 1000);
//也可以利用迭代器
list::iterator it = L.begin();
L.insert(++it, 1000);//++是让迭代器往后移动
//10.删除
it = L.begin();服务器托管网
L.erase(++it);//L.erase(it);
//11.删除容器中所有与elem值匹配的元素。
L.remove(10000);
总结:
*尾插 –push_back
*尾删 –pop_back
*头插 –push_front
*头删 –pop_front
*插入 –insert
*删除 –erase
*移除 –remove
*清空 –clear
2.list 数据存取
功能描述:
对list容中数据进行存取
函数原型:
front();//返回第一个元素
back();//返回最后一个元素
//创建
listL1;
//尾插
L1.push_back(10);
L1.push_back(20);
//L1[0]不可以用[]访问list容器中的元素
//L1.at(0) 不可以用at方式访问list容器中的元素
//原因是list本质链表,不是用连续线性空间存储数据,迭代器也是不支持随机访问的
//但是可以利用++实现访问
cout ::iterator it = L1.begin();
it++;//支持双向
it--;
//it=it+1 如果+1成立,那么等同于可以+2+3+4,也等同于可以跳跃式访问支持随机访问
总结:
*list容器中不可以通过[]或者at方式访问数据
*访问第一个元素 –front
*返回最后一个元素 –back
注:
判断容器类型的方法
++ — 即可判断是否为双向或者为哪种单向
+elem 即可判断是否支持跳跃式访问,可了解是否支持随机访问
3.list 反转和排序
功能描述:
*将容器中的元素反转,以及将容器中的数据进行排序
函数原型:
reverse();//反转链表
sort(); //链表排序
//创建
listL1;
L1.push_back(20)服务器托管网;
L1.push_back(10);
//反转
L1.reverse();
bool myCompare(int v1,int v2)
{
//降序 就让第一个数>第二个数
return v1 > v2;
}
//所有不支持随机访问迭代器,不可以用标准算法
//不支持随机访问迭代器的容器,内部会提供对应一些算法
//sort(L1.begin(), L1.end());//会报错
L1.sort();//成员函数 默认排序规则 从小到大 升序
L1.sort(myCompare);使用自己的规则
仅个人看视频笔记与理解,如有误可指出谢谢
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
个人主页:聆风吟 系列专栏:算法模板、数据结构 少年有梦不应止于心动,更要付诸行动。 文章目录 前言 一. ⛳️模拟栈 1.1 用数组模拟实现栈 1.1.1 栈的定义 1.1.2 向栈顶插入一个数 x(进栈操作) 1.1.3 从栈顶弹出一个元素(出栈操作) 1…