Re[2]: И снова STL на разных платформах
От: Pavel515  
Дата: 11.09.06 05:39
Оценка:
Здравствуйте, Андрей Коростелев, Вы писали:

АК>Здравствуйте, Pavel515, Вы писали:


P>>Помогите чем можете!


АК>По стандарту erase(iterator) для ассоциативных контейнеров возвращает void.

АК>STL идущий с VC возвращает итератор в качествен расширения.

АК>Пиши так:

АК>
АК>if (...)
АК>  Keys.erase(k++); 
АК>




Спасибо Андрей! вроде бы заработало, но тогда встречный вопрос:

почему тогда конструкция типа

for(k=Keys.begin();k!=Keys.end();k++)
{
...





if(...)
{
Keys.erase(k);
continue;
}



}
дает исключение при первом удалении, а


k=Keys.begin();
while(k!=Keys.end())
{
...
if(...)
{
Keys.erase(k++);
continue;
}
k++;
}

Нет! ?

неужели все как-то держится на "гонке сигналов" ???

С уважением, Павел.
Если хочешь выиграть в лотерею, то купи, хотя-бы лотерейный билет. (В.Мэгре)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.