如果我有一对向量:
std::vector<std::pair<int, int> > vec;
有没有一种简单的方法可以基于该对的第二个元素按升序对列表进行排序?
我知道我可以编写一个可以完成工作的小函数对象,但是有没有办法使用STL的现有部分并std::less
直接进行工作呢?
编辑:我了解我可以编写一个单独的函数或类以传递给第三个参数进行排序。问题是我是否可以用标准的东西建造它。我真的看起来像这样:
std::sort(vec.begin(), vec.end(), std::something_magic<int, int, std::less>());
这是一个示例:成对向量中的std :: sort
—
LeppyR64,
c ++没有lamda,因此您无法完全执行所需的操作,因此需要创建一个单独的函数/函数。这可以是一个单行,所以它实际上应该没什么大不了的。
—
伊万·特兰
C ++现在有lambdas!!
—
大卫·普尔