2016-02-23 2 views
0

не нужна помощь. вот что я хочу сделатькак предотвратить итератор аннулирование в этом случае

std::list<int> mylist; 
std::list<int>::iterator it; 
it = mylist.begin(); 

for (int i=1; i<=5; ++i)  
mylist.push_back(i); // 1 2 3 4 5 

mylist.insert (it,10); // 10 1 2 3 4 5 expected but output is 1 2 3 4 5 10 

Я на самом деле требуется, чтобы сделать что-то подобное в моих project.Is есть лучший способ для достижения этой цели

ответ

0

Вы пишете код it = mylist.begin(); после

for (int i=1; i<=5; ++i)  
mylist.push_back(i); // 1 2 3 4 5 

потому что это указывает на последний указатель.

0

Сохраните индекс вместо итератора. Таким образом, не может быть признан недействительным.

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