【发布时间】:2016-07-11 16:46:01
【问题描述】:
我试图根据第一个条目 (int [i][0]) 对 int[1000][2] 类型的数组进行排序,我使用了 STL 中的排序函数并编写了自己的比较对象。但是在编译时它说数组类型 int[2] 是不可分配的。我的代码有什么问题?
#include<iostream>
#include<fstream>
#include<algorithm>
class op {
public:
bool operator()(int a[2], int b[2]) {
return a[0] < b[0];
}
};
using namespace std;
int main() {
int money = 0;
int a[1000][2] = { 0 };
int total = 0, n = 0;
cin >> total>>n;
for (int i = 0; i < n; i++) {
cin >> a[i][0] >> a[i][1];
}
sort(a, a + n - 1, op());//where the problem occurred
for (int i=0; i<n; i++) {
if (a[1][i] < total) {
money = money + a[i][1] * a[i][0];
total = total - a[i][1];
}
else {
money = money + a[i][0] *total;
break;
}
}
cout << money << endl;
return 0;
}
【问题讨论】: