C++ 根据地图的值对地图进行排序';s属性

C++ 根据地图的值对地图进行排序';s属性,c++,sorting,C++,Sorting,我想写一个比较器/排序函数,它可以给我升序的值。这些值是十六进制的 假设map的类型为: map<string, vector<class_A objects> > map 向量的每个对象都有一个十六进制属性。让我们将该属性称为“z”。关于hex属性,我的意思是有一个类型为“hex”的属性,形式为11'h000或可能为11'hfff。 我想根据十六进制属性对向量进行排序 目前我的向量是,它们的z属性分别是11'h000,11'h00b,11'h007。我需要根据“z”

我想写一个比较器/排序函数,它可以给我升序的值。这些值是十六进制的

假设map的类型为:

map<string, vector<class_A objects> >
map
向量的每个对象都有一个十六进制属性。让我们将该属性称为“z”。关于hex属性,我的意思是有一个类型为“hex”的属性,形式为11'h000或可能为11'hfff。 我想根据十六进制属性对向量进行排序

目前我的向量是,它们的z属性分别是11'h000,11'h00b,11'h007。我需要根据“z”属性对向量进行排序,使其成为


如果需要的话,我很乐意写更多的细节。

我想你说的是在地图中对向量进行排序,而不是你的问题所说的地图本身

您可以使用带有适当lambda的
std::sort
,来定义比较:

//suppose myMap is a std::map<string, std::vector<class_A>
std::vector<class_A>& vec = myMap["SomeKey"];
std::sort(vec.begin(), vec.end(), [](const class_A& lhs, const class_A& rhs) { return lhs.z < rhs.z; })

//假设myMap是std::Map,那么您要问如何对向量排序?有许多重复的。