社区
C++ 语言
帖子详情
std::map 自定义排序的问题,测试通过马上给分
szmaimu
2005-09-09 06:18:55
自定一个结构体
struct AAA
{
DWORD aaa;
int bbb;
}
map <AAA* pA ,int var> theMap
要求map 按照AAA中的aaa的大小进行排序
...全文
764
14
打赏
收藏
std::map 自定义排序的问题,测试通过马上给分
自定一个结构体 struct AAA { DWORD aaa; int bbb; } map theMap 要求map 按照AAA中的aaa的大小进行排序
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jagen在路上
2005-09-11
打赏
举报
回复
to foochow,你还是学生阿,怪不得时间充足阿,呵呵!
xlsue
2005-09-11
打赏
举报
回复
coll["new_key"] = coll["old_key"];
coll.erase("old_key");
heguosheng
2005-09-11
打赏
举报
回复
这个在插入的时候排序的,如果我在后面改变aaa的值,这个排序就不起作用了,有什么方法吗
----------------------------------------
it's no way to alter the value of key, you may insert another one with your key/value after delete the original key/value.
foochow
2005-09-10
打赏
举报
回复
通过转化掉const当然可以改了,但是容器不在处于稳定或可用状态,代码就会出现问题,楼主真要那样做的话,可以把数据导出到vector中进行修改排序....
zlqian
2005-09-10
打赏
举报
回复
map元素本身是按升序排列的
zlqian
2005-09-10
打赏
举报
回复
1 #include <map>
2 #include <iostream>
3 #include <algorithm>
4
5 struct AAA
6 {
7 double aaa;
8 int bbb;
9 AAA(double a, int b):aaa(a),bbb(b){}
10 friend std::ostream &operator<< (std::ostream& out, const AAA& ref)
11 {
12 out<<"("<<ref.aaa<<":"<<ref.bbb<<")";
13 return out;
14 }
15
16 };
17
18 namespace std{
19 template<> struct less<AAA> : public binary_function<AAA,AAA,bool>
20 {
21 bool operator () (const AAA& _x, const AAA& _y) const { return _x.aaa<_y.aaa;}
22 };
23 }
24 using namespace std;
25
26 int main()
27 {
28 map<AAA, double, less<AAA> > theMap;
29 theMap[ AAA(0.2,20) ] = 0.2;
30 theMap[ AAA(0.5,50) ] = 0.5;
31 theMap[ AAA(0.1,10) ] = 0.1;
32 map<AAA, double, less<AAA> >::iterator ite=theMap.begin();
33 for( ; ite!=theMap.end(); ite++) cout<<(*ite).first<<"->"<<(*ite).second<<endl;
34 }
35
xlsue
2005-09-09
打赏
举报
回复
to jiajun2001(嘉俊):
"Key值是不能修改的,因为它被定义为const了"
可以修改的,以前讨论过了。通过黑客手段。建议不要用,我们是良民!
xlsue
2005-09-09
打赏
举报
回复
to foochow(恰似你的温柔):
使用指针为key,小心火烛!
foochow
2005-09-09
打赏
举报
回复
template <class RandomAccessIterator>
void sort(RandomAccessIterator first, RandomAccessIterator last)
map的迭代器不是mutable的,而sort要求RandomAccessIterator是mutable............
jiajun2001(嘉俊)
在实验室上课呢,无聊就上来看看,刚好碰到了,嘿嘿.....
Jagen在路上
2005-09-09
打赏
举报
回复
楼主应该好好看看有关stl方面的著作,Key值是不能修改的,因为它被定义为const了。
to foochow你一天就呆在CSDN上阿,你不需要工作吗???怎么每一次都会被你抢先?
szmaimu
2005-09-09
打赏
举报
回复
std::sort 不是可以对所有容器进行排序吗
foochow
2005-09-09
打赏
举报
回复
一旦一个键被插入map中,那么无论那个键被什么方式修改,它在map中的相对位置是不能改变的.如果修改了键值,map也会毫不知情,它对元素次序的假设将被推翻,查找合法元素的的操作会失败,iterator就不一定能按照键的次序来遍历map中的元素.....
szmaimu
2005-09-09
打赏
举报
回复
这个在插入的时候排序的,如果我在后面改变aaa的值,这个排序就不起作用了,有什么方法吗
foochow
2005-09-09
打赏
举报
回复
#include<iostream>
#include<map>
#include<iterator>
#include<windows.h>
using namespace std;
struct AAA
{
DWORD aaa;
int bbb;
AAA(DWORD a,int b):aaa(a),bbb(b){};
};
struct iter
{
bool operator()(const AAA*s1,const AAA*s2)
{
return s1->aaa>s2->aaa;
}
};
int main()
{
map<AAA*,int,iter>temp;
temp.insert(make_pair(&AAA(1,1),1));
temp.insert(make_pair(&AAA(2,2),2));
temp.insert(make_pair(&AAA(3,3),3));
temp.insert(make_pair(&AAA(4,4),4));
temp.insert(make_pair(&AAA(5,5),5));
map<AAA*,int,iter>::iterator it=temp.begin();
while(it!=temp.end())
{
cout<<it->first->aaa<<" "<<it->first->bbb<<" "<<it->second<<endl;
it++;
}
return 0;
}
【亲测免费】 大连理工大学概率上机作业
大连理工大学概率上机作业 去发现同类优质开源项目:https://gitcode.com/ 本资源文件包含大连理工大学概率论与数理统计课程相关的上机作业示例代码。这份作业旨在通过实际操作加深对概率统计基本概念的理解,特别是围绕随机变量的性质、协方差与相关系数的计算,以及多变量正态
分
布的应用。 作业内容概述 第一题 生成数据:利用rand函数生成1000个服从均匀
分
布的随机数X。 处理数据:根据公...
大连理工大学概率上机作业免费下载
本资源库收录了大连理工大学概率论与数理统计课程的上机作业范例代码,旨在通过实际操作加深学生对概率统计概念的理解,帮助学生更好地理解和掌握知识点。
2020春大连理工概率统计 上机作业
文章目录第一次上机作业第二次上机作业 第一次上机作业 1.(a) > a <- rnorm(1000) > mean(a) [1] 0.03495309 > var(a) [1] 0.9732954 (b) > hist(a,freq=F) 期望很接近0,直方图的峰值在0的附近,左右
分
布较为均匀; 方差很接近1 。与计算结果较为拟合 2.(a) > x ...
探索概率统计的奥秘:大连理工大学概率上机作业项目推荐
探索概率统计的奥秘:大连理工大学概率上机作业项目推荐 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 “大连理工大学概率上机作业”项目是一个专注于概率论与数理统计课程的实践资源,旨在通过实际编程操作,帮助学生深入理解概率统计的基本概念。该项目包含了多个上机作业示例代码,涵盖了随机变量的生成、数据处理、统计
分
析以及多变量正态
分
布的应用等多个方面。通过这些作业,学生不仅能够...
探索概率的奥秘:大连理工概率论实践宝典
探索概率的奥秘:大连理工概率论实践宝典 去发现同类优质开源项目:https://gitcode.com/ 在数字世界的浩瀚海洋中,概率论与数理统计如同灯塔,引领着我们理解不确定性背后的规律。今天,我们将一同揭开一个特别的开源宝藏——《大连理工大学概率上机作业》。这不仅是一套练习题集,更是一扇通往统计思维深邃领域的门扉。 技术剖析:MATLAB中的概率舞步 本项目依托于强大的MATLAB环境,巧妙地...
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章