Я хочу перебрать вектор указателей, указывающих на объекты. Во время итерации, я должен push_back новые указатели на вектор. До цикла число push_backs неизвестно, и нет критерия прерывания, поэтому я не могу использовать цикл while.
Вот пример использования указателей на целые числа, который показывает ту же ошибку, что иверсия с объектами: ошибка сегментации (ядро сброшено) после одной итерации.
vector<int*> vec;
int a = 43;
vec.push_back(&a);
for (vector<int*>::iterator it = vec.begin(); it != vec.end(); ++it) {
cout << *(*it) << " " << *it << endl;
vec.push_back(&a);
}
Тот же код, но с целыми числами, прекрасно работает.
vector <int>vec;
int a = 43;
vec.push_back (a);
for (vector < int >::iterator it = vec.begin (); it != vec.end (); ++it){
cout << (*it) << " " << *it << endl;
vec.push_back (a);
}