我已经定义了这样的地图
typedef std::vector< int > aVector;
typedef std::map< int, aVector > aMap;
aMap theMap;
假设地图最终包含一些像这样的元素
10 [0 3 7] size=3
12 [40 2 30 3 10] size=5
20 [5 10] size=2
25 [6] size=1
我想对向量的大小进行排序(例如 theMap->second.size())。所以结果将是
5 3 2 1
最快的方法是什么?基本思想是将大小推到另一个向量上,然后调用 sort(),像这样
aVector v, sorted;
aMap::iterator it = theMap.begin();
for (; it != theMap.end(); ++it) {
v.push_back(it->second.size());
}
// using std sort!!
有没有更好的选择?