C++11. Почему выдается ошибка? В код сильно не вникайте, алгоритм правильный. Ошибка...

0 голосов
44 просмотров

C++11. Почему выдается ошибка? В код сильно не вникайте, алгоритм правильный. Ошибка request for member 'sort' in 'vec', which is of non-class type 'std::pair, int> [1050]' при сортировке.
#include
#include
using namespace std;
int A[505][505];
pair, int> vec[1050];
bool comp(pair, int> a, pair, int> b) {
if(a.first.size() != b.first.size()) return a.first.size() < b.first.size();
else {
int amax = -1, asum = 0;
for(auto it = a.first.begin(); it != a.first.end(); it++) {
asum += *it;
amax = max(amax, *it);
}
int bmax = -1, bsum = 0;
for(auto it = b.first.begin(); it != b.first.end(); it++) {
bsum += *it;
bmax = max(bmax, *it);
}
return asum < bsum or (asum == bsum and amax < bmax);
}
}
main() {
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++) {<br> for(int j = 1; j <= m; j++) {<br> cin >> A[i][j];
}
}
for(int d = 2; d <= m + n; d++) {<br> int f;
for(f = (m < d ? d - m + 1 : 1); f <= d; f++) {<br> vec[d].first.push_back(A[f][d - f]);
}
vec[d].second = d - 1;
}
vec.sort(vec + 1, vec + m + n + 1, comp);
for(int i = 1; i <= n + m; i++) {<br> cout << vec[i].second << " ";<br> }
}


Информатика (159 баллов) | 44 просмотров
Дан 1 ответ
0 голосов

Неправильное использование std:pair

(37 баллов)
0

нет, я разобрался. sort неправильно использую