почему этот код вызывает ошибку сегментации, когда я пытаюсь вывести значение?
ошибка сегментации вызывается из-за линии
соиЬ << * 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;
}
}
В этой декларации:
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();
Или что-то в этом роде.