выдает ошибку при попытке отсортировать set ( с++ )

уже не знаю где искать. мне необходимо было взять i значение из set. искала тонну способов, нашла этот - ничего не работает. выдает ошибку C:\Program Files\CodeBlocks\MinGW\lib\gcc\x86_64-w64-mingw32\8.1.0\include\c++\bits\stl_algo.h|1969|error: no match for 'operator-' (operand types are 'std::_Rb_tree_const_iterator' and 'std::_Rb_tree_const_iterator')|

#include <iostream>
#include <set>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    long long n, m, k, s;
    cin >> n >> m;
    vector< vector <long> > matric(n, vector <long> (m));
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j){
            cin >> matric[i][j];
        };
    }
    cin >> s;
    set<long> mass;
    long long findn, findm;
    for (int e = 0; e < s; ++e) {
        cin >> findn;
        cin >> findm;
        cin >> k;
        for (int q = 0; q < m; ++q) {
            mass.insert(matric[findn][q]);
        };
        for (int w = 0; w < n; ++w) {
            mass.insert(matric[w][findm]);
        };

    }
    sort(mass.begin(), mass.end());
    //vector<long> res(mass.size());
    //copy(mass.begin(), mass.end(), res.begin());
    //cout << res[k-1] << endl;
}

Ответы (1 шт):

Автор решения: Qwertiy
  1. set нельзя отсортировать
  2. set и так отсортирован

мне необходимо было взять i значение из set

auto x = std::next(mass.begin(), i);

Только учти, что работает за O(n).

Зачем нужны функции std::advance, next, prev?

→ Ссылка