2012-03-29 6 views
0

私はソートし、結果を増減する必要があります。私は印刷にいくつか問題があります。ベクターメンバーの印刷。エラー

コード:

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; 
} 
    } 

ERROR: ///// HEREスポット私もエラーが出ますが、おそらく彼らは関連しています。 「いいえマッチ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' 
+3

31個のベクトルの配列を作成してベクトルウィットではありませんhの容量は31ですか? – Joe

+1

'配列'とは何ですか? [** minimal **テストケース](http://sscce.org)と** complete **エラーメッセージを投稿してください。 –

+0

WooaaA? :))seriosly?それはベクトルではありません名前 patern? –

答えて

2

STLアルゴリズムは、sortのように、イテレータで動作するので、あなたは、このようなsort呼び出す必要があります:

sort(days.begin(), days.end()); 

しかし、最初に、あなたのコードを修正します: 31個の要素を持つベクトルではなく、31個のベクトルを作成しました。

vector<int> days(31); 
+0

私にはエラー/バグがありません。私の配列Mからベクトルに値を代入しようとすると問題があります。 \t \t \t s + = M.M [i] [j]; \t \t \t日[i] = s; とベクトルをrpintしようとすると、=演算子で何かがあります。 –

+0

days [i] = days [i]はint型ではなくベクトルであるため失敗します。それは私が話しているバグのポイントです。 –

+0

が修正されました... int adn vec の違いを修正するヒントを教えていただけますか?Mから日に移動できますか? –