我目前有一个 std::vector ,其中包含 std::vector 的 double 。我想按双 vector 的第二个元素对其进行排序。前任: 我不是按 MyVec[0] 或 myvec[1] 排序,而是根据 myvec[0][1] myvec[1][1] 对 myVec[0] 和 myvec[1] 进行排序。基本上按包含的值排序,而不是其中的对象。
因此,如果 myvec[0][1] 小于 myvec[1][1],则 myvec[0] 和 myvec[1] 将交换。 谢谢
最佳答案
只写比较器:
bool my_comparator(const std::vector<double>& lhs, const std::vector<double>& rhs)
{
assert(lhs.size() >= 2 && rhs.size() >= 2);
return lhs[1] < rhs[1];
}
...
std::sort(big_vector.begin(), big_vector.end(), my_comparator);
最好写一个仿函数而不是一个函数,但概念是一样的。
关于c++ - 按内部元素对 std::vector 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993712/