社区
C++ 语言
帖子详情
能否不让map排序
zzutnicholas
2009-08-26 11:11:31
map<string,double> obj
我发现obj的key按照字母排序了
因为我希望每个keypair按照加入的时候顺序迭代处理
不知道改怎么做?
谢谢
...全文
568
16
打赏
收藏
能否不让map排序
map obj 我发现obj的key按照字母排序了 因为我希望每个keypair按照加入的时候顺序迭代处理 不知道改怎么做? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dskit
2009-08-28
打赏
举报
回复
[Quote=引用 11 楼 zzutnicholas 的回复:]
引用 8 楼 dskit 的回复:
unsorted_map
boost
原数据:
FACING_1 246.069859
ROUGH_BORE_ID 631.877831
GROOVE_FACE 3.910494
FINISH_TURN_OD 9.119089
FINISH_TURN_OD_2 8.978312
FINISH_TURN_OD_1 8.665136
FINISH_TURN_OD_3 9.242448
ROUGH_BORE_ID_1 81.913576
GROOVE_ID 48.332078
GROOVE_ID_1 53.805978
FINISH_BORE_ID 1.666675
迭代输出数据:
FINISH_TURN_OD_3
FINISH_TURN_OD
ROUGH_BORE_ID_1
FINISH_TURN_OD_1
FACING_1
GROOVE_FACE
GROOVE_ID
FINISH_TURN_OD_2
FINISH_BORE_ID
GROOVE_ID_1
ROUGH_BORE_ID
[/Quote]
explicit unordered_map(size_type n = 3,
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
template <class InputIterator>
unordered_map(InputIterator f, InputIterator l,
size_type n = 3,
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
用法参见:
http://publib.boulder.ibm.com/infocenter/comphelp/v9v111/index.jsp?topic=/com.ibm.xlcpp9.aix.doc/standlib/stl_unordered_map.htm
boost::unordered_map rt
该怎么用呢?
我用的是rt.insert(std::pair <string,double>(oper_name,time));
效果还是不对
猫已经找不回了
2009-08-26
打赏
举报
回复
map默认用迭代器遍历就是排序的。
你不想排序不用不就是了。
dskit
2009-08-26
打赏
举报
回复
unsorted_map
boost
wuxiaohu
2009-08-26
打赏
举报
回复
不想排序,用map干吗,那就用二维数组啊,哈
erwin1984
2009-08-26
打赏
举报
回复
估计LZ想拥有map的特性,同时又想按照插入的顺序遍历元素。
STL似乎没有现成的,可以考虑用一个 map<string,mylist_iterator> 来标示string是否存在,另外用一个 list< pair<string,double> > 来保存具体数据。
typedef list< pair<string,double> >::iterator mylist_iterator;
不过在插入删除数据时得同时操作两个对象,可以考虑封装成一个类。
wy2001wy
2009-08-26
打赏
举报
回复
不想排序就不要用map了嘛
鼠
2009-08-26
打赏
举报
回复
其实 map 内部实现好像就是排序树,这东西设计之初就是用来动态排序查找的。
如果不想排序,就从 vector、list 和 deque 这些顺序容器里面选一个吧,但是那样又不能高效查找了,具体怎么用就看楼主的需要了。
xujg811
2009-08-26
打赏
举报
回复
不想排序,是不是说明你取元素的时候是遍历取?
那就别用map,用list;
healer_kx
2009-08-26
打赏
举报
回复
Yes, UP
mstlq
2009-08-26
打赏
举报
回复
不想排序?
楼主可否考虑改用vector<pair<string,double> >?
鼠
2009-08-26
打赏
举报
回复
boost::unordered_map 是 hash 表
我也没有找到 unsorted_map
zzutnicholas
2009-08-26
打赏
举报
回复
[Quote=引用 13 楼 taodm 的回复:]
楼主要补基础了呀,莫于浮沙筑高台。
都开始接触boost了,却还没认真看过《effective stl》吧。
[/Quote]
惭愧,工程人员,不是专业人员
能用就行,呵呵
taodm
2009-08-26
打赏
举报
回复
楼主要补基础了呀,莫于浮沙筑高台。
都开始接触boost了,却还没认真看过《effective stl》吧。
zzutnicholas
2009-08-26
打赏
举报
回复
[Quote=引用 8 楼 dskit 的回复:]
unsorted_map
boost
[/Quote]
我装的boost1.39好像没有这个unsorted_map。hpp
zzutnicholas
2009-08-26
打赏
举报
回复
[Quote=引用 8 楼 dskit 的回复:]
unsorted_map
boost
[/Quote]
boost::unordered_map<string,double> rt
该怎么用呢?
我用的是rt.insert(std::pair<string,double>(oper_name,time));
效果还是不对
原数据:
FACING_1 246.069859
ROUGH_BORE_ID 631.877831
GROOVE_FACE 3.910494
FINISH_TURN_OD 9.119089
FINISH_TURN_OD_2 8.978312
FINISH_TURN_OD_1 8.665136
FINISH_TURN_OD_3 9.242448
ROUGH_BORE_ID_1 81.913576
GROOVE_ID 48.332078
GROOVE_ID_1 53.805978
FINISH_BORE_ID 1.666675
迭代输出数据:
FINISH_TURN_OD_3
FINISH_TURN_OD
ROUGH_BORE_ID_1
FINISH_TURN_OD_1
FACING_1
GROOVE_FACE
GROOVE_ID
FINISH_TURN_OD_2
FINISH_BORE_ID
GROOVE_ID_1
ROUGH_BORE_ID
bfzhao
2009-08-26
打赏
举报
回复
使用vector。map使用排序树来提高查询性能,你需要的不是查询,何必使用map?
C++的
map
排序
博客主要介绍C++中
map
的
排序
。
map
默认按key从小到大
排序
,还可按key从大到小、键字符串长度、结构体key
排序
,也能按value
排序
。文中针对每种
排序
方式给出了代码示例及运行说明。
对
map
集合进行
排序
的方法
本文介绍了Java中
Map
接口的实现类Hash
Map
和Tree
Map
的
排序
方式。Hash
Map
是根据key的HashCode
排序
,无固定顺序;而Tree
Map
可以根据key或value进行
排序
。通过自定义Comparator,可以实现降序
排序
。示例代码展示了如何根据月份对
Map
的key进行
排序
,以及如何根据value
排序
。
JS
Map
对象
排序
本文介绍如何在JavaScript中对
Map
对象进行
排序
,包括按value值
排序
和按key
排序
的方法。通过将
Map
转换为数组,利用数组的sort方法,并最终转换回
Map
,实现灵活
排序
。
map
如何实现
排序
本文深入探讨了C++中的两种关联容器:
Map
和Unordered_
Map
的使用方法及特性。介绍了
Map
如何通过键(key)进行
排序
,以及如何自定义
排序
规则。同时,文章还讲解了如何对
Map
中的值(value)进行
排序
,通过将
Map
转换为Vector并使用sort算法实现。
JAVA
map
排序
实现
本文详细介绍Java中
Map
排序
的两种常见方式:按键
排序
和按值
排序
。通过实例代码演示如何使用Tree
Map
和比较器实现按键
排序
,以及如何通过转换
Map
到List并使用Collections.sort方法实现按值
排序
。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章