C++里关于list的排序算法?

有这样一个结构:
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的在第二个。

慕斯王
浏览 810回答 1
1回答

胡说叔叔

假如你的order对每一个对象来说都是唯一的,即不相同的话.可以创建一个map<int,Test>和一个list<int>,将里面的order提取出来存放到list<int>里面,用sort()库函数排序,再根据map<int,Test>来查找匹配的对象,根据排序结果,重新对map<int,Test>赋值,这时,对int的排序就完成了对Test的排序,达到了对Test排序目的
打开App,查看更多内容
随时随地看视频慕课网APP