如何对二维向量进行排序
How to sort a 2d Vector
我有一个向量 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 没有 return 任何东西。向量就地排序。
替换
L = sort(L.begin(), L.end(), compare);
来自
sort(L.begin(), L.end(), compare);
我有一个向量 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 没有 return 任何东西。向量就地排序。
替换
L = sort(L.begin(), L.end(), compare);
来自
sort(L.begin(), L.end(), compare);