我有一个向量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’)
感谢您的帮助
答案 0 :(得分:5)
std::sort不返回任何内容。向量在适当的位置排序。
替换
L = sort(L.begin(), L.end(), compare);
通过
sort(L.begin(), L.end(), compare);