如何对二维向量进行排序

时间:2019-11-02 14:02:32

标签: c++ c++11 stdvector

我有一个向量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’)

感谢您的帮助

1 个答案:

答案 0 :(得分:5)

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

替换

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

通过

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