выдает ошибку при попытке отсортировать 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
→ Ссылка
- set нельзя отсортировать
- set и так отсортирован
мне необходимо было взять i значение из set
auto x = std::next(mass.begin(), i);
Только учти, что работает за O(n).