我需要排序然后打印结果增加和减少。我的打印有些问题。
代码:
void srtAsc(Array M){
vector <int> days[31];
for(int i=0; i<31; i++){
int s=0;
for(int j = 0; j<6; j++){
s += M.M[i][j];
days[i] = s; //// HERE
}
sort(days[0],days[31]);
}
for(int i=0; i<31;i++){
cout<<i<<". "<<days[i]; ///// HERE
cout<<endl;
}
}
错误: /////这里的地方我也得到了一个错误,也许它们是相关的。 “没有匹配的oeprators'='
c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/bits/stl_algo.h:2072:4: error: no match for 'operator--' in '--__next'
c:\mingw\bin\../lib/gcc/mingw32/4.6.1/include/c++/bits/stl_algo.h:2074:7: error: no match for 'operator*' in '*__last'
答案 0 :(得分:2)
STL算法(如sort
)对迭代器进行操作,因此您需要像这样调用sort
:
sort(days.begin(), days.end());
但首先,修复你的代码:你创建了31个向量 - 而不是带有31个元素的向量。使用
vector<int> days(31);