Здравствуйте, Андрей Коростелев, Вы писали:
АК>Здравствуйте, 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++;
}
Нет! ?
неужели все как-то держится на "гонке сигналов" ???
С уважением, Павел.
Если хочешь выиграть в лотерею, то купи, хотя-бы лотерейный билет. (В.Мэгре)