没有合适的资源?快使用搜索试试~ 我知道了~
c++容器list、vector、map、set区别与用法详解
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
6 下载量 34 浏览量
2020-12-17
18:28:33
上传
评论 3
收藏 95KB PDF 举报
温馨提示
c++容器list、vector、map、set区别 list 封装链表,以链表形式实现,不支持[]运算符。 对随机访问的速度很慢(需要遍历整个链表),插入数据很快(不需要拷贝和移动数据,只需改变指针的指向)。 新添加的元素,list可以任意加入。 vector 封装数组,使用连续内存存储,支持[]运算符。 对随机访问的速度很快,对头插元素速度很慢,尾插元素速度很快 新添加的元素,vector有一套算法。 map 采用平衡检索二叉树:红黑树 存储结构为键值对<key> set 采用平衡检索二叉树:红黑树 set中不包含重复的数据 Hash
资源推荐
资源详情
资源评论
c++容器容器list、、vector、、map、、set区别与用法详解区别与用法详解
c++容器容器list、、vector、、map、、set区别区别
list
封装链表,以链表形式实现,不支持[]运算符。
对随机访问的速度很慢(需要遍历整个链表),插入数据很快(不需要拷贝和移动数据,只需改变指针的指向)。
新添加的元素,list可以任意加入。
vector
封装数组,使用连续内存存储,支持[]运算符。
对随机访问的速度很快,对头插元素速度很慢,尾插元素速度很快
新添加的元素,vector有一套算法。
map
采用平衡检索二叉树:红黑树
存储结构为键值对<key,value>
set
采用平衡检索二叉树:红黑树
set中不包含重复的数据
Hash_Map
采用hash算法加快查找过程,但需要更多内存存放hash桶元素,是一种采用空间换取时间的策略。
c++容器容器list、、vector、、map、、set用法用法
vector
在内存中分配一块连续的存储空间进行存储,支持不指定vector大小的存储。即将元素置于一个动态数组中加以管理的容器。
vector对象的创建
vector<数据类型> vector容器名称
vector<int> vecInt; //一个存放int的vector容器。
vector<float> vecFloat; //一个存放float的vector容器。
vector<string> vecString; //一个存放string的vector容器。
vector常用操作
vector.size(); //返回容器中元素的个数
vector.empty(); //判断容器是否为空
vector.resize(num); //重新指定容器的长度为num
vector.push_back(1); //在容器尾部加入一个元素
vector.pop_back(); //移除容器中最后一个元素
vector.clear(); //移除容器的所有数据
vector.erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置。
vector.erase(pos); //删除pos位置的数据,返回下一个数据的位置。
vector.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置。
vector.insert(pos,n,elem); //在pos位置插入n个elem数据,无返回值。
vector.insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据,无返回值
vector<int>::iterator iter = find(vector.begin(),vector.end(),3);//查找元素3是否存在vector中。若存在返回元素,否则返回vector.end()。find()函数加上头文件
**#include<algorithm>**
vector的正向遍历和反向遍历
//正向遍历
for(vector<int>::iterator it=vecInt.begin(); it!=vecInt.end(); ++it)
{
int iItem = *it;
cout << iItem; //或直接使用 cout << *it;
}
//反向遍历
for(vector<int>::reverse_iterator rit=vecInt.rbegin(); rit!=vecInt.rend(); ++rit) //注意,小括号内仍是++rit
{
int iItem = *rit;
cout << iItem; //或直接使用cout << *rit;
资源评论
weixin_38747211
- 粉丝: 12
- 资源: 901
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 没用333333333333333333333333333333
- 基于Vue和SpringBoot的企业员工管理系统2.0版本设计源码
- 【C++初级程序设计·配套源码】第2期-基本数据类型
- 基于Java和Vue的kopsoftKANBAN车间电子看板设计源码
- 影驰战将PS3111 东芝芯片TT18G23AIN开卡成功分享,图片里面画线的选项很重要
- 【C++初级程序设计·配套源码】第1期-语法基础
- 基于JavaScript、CSS、HTML的简易DOM版飞机游戏设计源码
- 基于Java开发的日程管理FlexTime应用设计源码
- SM2258XT-BGA144-4BGA180-6L-R1019 三星KLUCG4J1CB B0B1颗粒开盘工具 , EC, 3A, 94, 43, A4, CA 七彩虹SL300这个固件有用
- GJB 5236-2004 军用软件质量度量
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功