社区
C++ 语言
帖子详情
std的map,插入数据时它内部估计自动排序了,???
xuezt
2009-10-16 01:42:00
std的map,插入数据时它内部估计自动排序了,用iterator循环读取的结果顺序和插入时的不一样.
怎样可以使插入的数据顺序和用iterator循环读取的顺序一样?
...全文
449
4
打赏
收藏
std的map,插入数据时它内部估计自动排序了,???
std的map,插入数据时它内部估计自动排序了,用iterator循环读取的结果顺序和插入时的不一样. 怎样可以使插入的数据顺序和用iterator循环读取的顺序一样?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leewon1988
2009-10-16
打赏
举报
回复
map就是红黑树啊
所以自动排了
fengzuiye
2009-10-16
打赏
举报
回复
map是关联容器,内部结构是树结构,保持了元素有序,使得对内部元素插入和删除操作的复杂度降低。
若要想保持和输入顺序一致,可以考虑使用顺序容器,如vector,list,deque。
晨星
2009-10-16
打赏
举报
回复
是啊,map内部是一棵有序的树,所以它的查起来快啊。
mstlq
2009-10-16
打赏
举报
回复
map的好处就是自动排序……
不喜欢的话,请用vector<pair<yourType,yourType> >
STL
map
容器怎么
插入
数据
在C++中,`
std
::
map
`是一种关联式容器,它以key-value对的形式存储
数据
,并且按照key的大小进行
自动
排序
。需要注意的是,如果使用下标运算符[]
插入
元素
时
,如果该元素已经存在,则会更新其对应的value值;否则会
插入
一个新的key-value对。以上三种方法都可以用于向`
std
::
map
`中
插入
数据
,具体选择哪一种方法取决于实际需求。1. 使用insert函数
插入
单个元素。2. 使用insert函数
插入
多个元素。3. 使用下标运算符[]
插入
单个元素。
Map
的
插入
操作和按照value
排序
背景对比
map
的
插入
操作效率说明常见的
map
插入
操作有两种,一种是通过操作符[]进行
插入
,另一种则是通过insert成员函数进行
插入
。 []操作符进行
插入
。[]操作符示例:
std
::
map
map
1;
map
1[2]="Hello";
插入
2
时
,先在
map
1中查找主键为2的项,没发现,然后将一个新的对象
插入
map
1中,键是2,此
时
的值是一个空字符串,在
插入
完成后,将字符串赋为
std
::
map
、
std
::set使用自定义
数据
的键值
时
注意
排序
map
、set
插入
自定义
数据
类型作为key
时
需要注意什么问题问题?!!!!!!!! 首先要解决
排序
问题,方法有: 1.重载自定义
数据
类型的operator<()操作符 2.
map
类型的第三个参数为函数对象类类型,可以自定义这个比较函数的函数对象, 如申明一个类似 struct CustomLess { bool operator()(const CustomKey2& other1, const CustomKey2& other2) { ...
C++屏蔽
map
自动
排序
最近写项目适合,发现
map
自动
排序
了,以前没注意这个问题,可能ms考虑到
map
查询效率问题,
插入
适合就
自动
排序
号,查找其
内部
构造,发现其是模板实现方式,咱们可以改一改就可以避免
自动
排序
(万不得已才用) 如果要屏蔽掉
map
的自带默认
排序
,我们需要重写以一个
排序
对象 #include <
map
> #include <iostream> template<class T> struct DisableCompare : public
std
::binary...
C++ STL容器
map
禁止
自动
排序
背景:key-value形式的
数据
,已经使用了
map
存储,后来要求读取
时
的顺序要和
插入
的顺序一致 方案一、再定义个数组,按顺序保存key (推荐) 方案二、
map
更换为unordered_
map
(经验证,此方案不可行) 方案三、禁止
map
自动
排序
(
map
.find方法不可用,
插入
时
不能使用insert) 其实正常来说方案一应该是最好的选择,但由于方案一的改动量比较大,本人又比较懒(主要原因),而且场景也很特殊,并没有用到
map
.find方法 所以先选择了方案二,以前知道unorde...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章