ошибка сегментации для векторного итератора

почему этот код вызывает ошибку сегментации, когда я пытаюсь вывести значение?
ошибка сегментации вызывается из-за линии

соиЬ << * Rit_j;

void chef(vector<int>vec)
{
int count=0;
vector<int>::iterator bit = vec.begin();
vector<int>::iterator eit=vec.end();
if(*bit != *eit)
{
sort(bit,eit);
vector<int>::iterator rit_i,rit_j,initial = vec.end();
--rit_i;--rit_j;--initial;
cout << *rit_i;

}
}

-6

Решение

В этой декларации:

vector<int>::iterator rit_i,rit_j,initial = vec.end();

только initial инициализируется с vec.end(), Чтобы сделать то, что я думаю, вы ожидаете, вы должны написать

vector<int>::iterator rit_i = vec.end(), rit_j = vec.end(), initial = vec.end();

или же

vector<int>::iterator rit_i,rit_j,initial;
rit_i = rit_j = initial = vec.end();

Или что-то в этом роде.

3

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector