如何对二维矢量进行排序

How to sort a 2d Vector

本文关键字:排序 二维      更新时间:2023-10-16

我有一个向量L,其中包含每个向量有2个双精度的向量。我想按第一个元素对L中的向量进行排序。

vector<vector<double>> L;

我尝试使用std::sort算法和一个自己编写的比较函数,如下所示:

bool compare(const vector<double> &v1, const vector<double> &v2)
{
return v1[0] < v2[0];
}
void out_2d_vecotr_as_value_pairs(vector<vector<double>> &L)
{
L = sort(L.begin(), L.end(), compare);
...
}

但是我在调用sort((函数的行中遇到了一个我不理解的错误:

projet.cc:234:38: error: no match for ‘operator=’ (operand types are ‘std::vector<std::vector<double> >’ and ‘void’)

感谢您的帮助

std::sort不返回任何内容。矢量在适当的位置进行排序。

更换

L = sort(L.begin(), L.end(), compare);

通过

sort(L.begin(), L.end(), compare);