Как отсортировать 2d вектор - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть вектор 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 Ответ

5 голосов
/ 02 ноября 2019

std :: sort ничего не возвращает. Вектор отсортирован по месту.

Заменить

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

на

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