有这样一个结构:struct Test{CString Name;int order;};声明一个list来保存结构.list<Test> testList;对list赋值:Test te;te.Name = "AAA";te.order = 1;testList.push_back(te);te.Name = "BBB";te.order = 3;testList.push_back(te);te.Name = "CCC";te.order = 2;testList.push_back(te);te.Name = "DDD";te.order = 5;testList.push_back(te);te.Name = "EEE";te.order = 4;testList.push_back(te);复制后我想对testList排序,要根据list里面对象的order来排序。也就是order为1的在list的第一个。2的在第二个。
1 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
假如你的order对每一个对象来说都是唯一的,即不相同的话.
可以创建一个map<int,Test>和一个list<int>,将里面的order提取出来存放到list<int>里面,用sort()库函数排序,再根据map<int,Test>来查找匹配的对象,根据排序结果,重新对map<int,Test>赋值,这时,对int的排序就完成了对Test的排序,达到了对Test排序目的
- 1 回答
- 0 关注
- 808 浏览
添加回答
举报
0/150
提交
取消