2012-03-29 3 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; 
} 
    } 

ОШИБКА: ///// ЗДЕСЬ пятна я получаю также ошибку, возможно, они связаны между собой. "

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 вектора, а не вектор с емкостью число 31? – Joe

+1

Что такое 'Array'? Пожалуйста, опубликуйте [** минимальный ** тестовый пример] (http://sscce.org) и ** полное сообщение об ошибке **. –

+0

WooaaA? :)) seriosly? это не вектор имя патерн? –

ответ

2

алгоритмы STL Ни один матч oeprators '=', как 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 days [i] = s; , и когда я пытаюсь rpint вектор, у него есть что-то с оператором =. –

+0

дней [i] = s не работает, потому что дни [i] имеют вектор типа , а не int. Вот в чем суть ошибки, о которой я говорю. –

+0

исправлено ... Не могли бы вы дать им подсказку, как исправить разницу между int adn vec ? Так что я могу переместить их с M на несколько дней? –

Смежные вопросы