c++ - 对 map 中的 vector 进行排序

标签 c++ vector maps containers

如何根据 vector 的大小对 map 中的 vector 进行排序?

例子:

map<int, vector<int> > 

根据 vector 的大小进行排序,以便稍后在较小的大小内删除一些元素。

1,2,3,4
2,5
6,7,8

排序和删除后...

1,2,3,4
6,7,8
5

我希望这能阐明预期的需求。

谢谢

最佳答案

映射是一个有序的容器,顺序谓词应用于其中的键

例如你可以有一个std::map<int, std::vector<int>, std::less<int> >

这里你的键不是 vector ,因此你不能用你的 map 做你想做的事情。

这里也许你想要一个 std::map<std::vector<int>, int, some_struct>其中 some_struct是定义 vector 严格顺序关系的仿函数。

关于c++ - 对 map 中的 vector 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6253916/

相关文章:

c++将未知类型传递给函数和任何类类型定义

c++ - 访问另一个子类中基类的 protected 成员

c++ - 将剩余的项目添加到另一个 vector

data-structures - []map[string]struct 错误的 Golang 赋值

javascript - PHP for-each 循环不起作用?

c++ - 是否有一个 GNU C 编译器选项可以生成运行速度比默认设置更快但精度更低的浮点程序?

c++ - GMOCK如何为函数参数赋值

c++ - 在 C++ 中调试 sigtrap

R - 如何重新排序行索引号

ios - 长按快速将图钉注释添加到 map View