2012-03-29 10 views
0

Ich muss sortieren dann drucken Sie das Ergebnis erhöhen und verringern. Ich habe ein paar Probleme mit dem Drucken.Drucken von Vektorelementen. Fehler

Code:

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: ///// HIER Spots ich auch einen Fehler, vielleicht sind sie miteinander verwandt. "Keine Übereinstimmung 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

Ist Ihnen klar, dass Sie ein Array von 31 Vektoren erstellt haben und nicht ein Vektor wit h eine Kapazität von 31? – Joe

+1

Was ist ein 'Array'? Bitte posten Sie einen [** minimalen ** Testfall] (http://sscce.org) und die ** komplette ** Fehlermeldung. –

+0

WooaaA? :)) seriosly? es ist nicht Vektor Name die Patern? –

Antwort

2

STL Algorithmen '=', wie sort, arbeiten auf Iteratoren, so dass Sie sort so nennen müssen:

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

Aber zuerst beheben Code: Sie haben 31 Vektoren erstellt - keinen Vektor mit 31 Elementen

vector<int> days(31); 
+0

es funktioniert für mich kein Fehler/Bugg da .. Es gibt ein Problem, wenn ich versuche, die Werte von meinem Array M auf den Vektor zuweisen. \t \t \t s + = M.M [i] [j]; \t \t \t Tage [i] = s; und wenn ich versuche, den Vektor zu rpint, hat es etwas mit dem Operator =. –

+0

Tage [i] = s schlägt fehl, da Tage [i] vom Typ Vektor und nicht int ist. Das ist der Punkt des Fehlers, von dem ich spreche. –

+0

behoben ... können Sie ihnen einen Hinweis geben, wie man den Unterschied zwischen int adn vec beheben kann, damit ich sie von M zu Tagen verschieben kann? –