Форум программистов, компьютерный форум, киберфорум
Наши страницы

Коварный map - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка линкера http://www.cyberforum.ru/cpp-beginners/thread627962.html
Здравствуйте!!! Подскажите пожалуйста почему возникают ошибки линкера? // main.cpp #include "parser.h" int main() { char prog_buff;
C++ Как правильно организовать большой проект? В будущем хочу участвовать в разработке игр - начал изучать С++, вопрос тут такой, как правильно организовать структуру достаточно большого проекта? в учебниках, с примерами в 1-2 файла все просто,... http://www.cyberforum.ru/cpp-beginners/thread627923.html
resize вектора векторов C++
Необходимо удалить n элементов с конца вектора. В vector::erase необходимо передавать итератор. Т.к. итератора у меня нет, а есть конкретная цифра сколько нужно удалить, вродебы подходит функция...
C++ Не врубаюсь в работу деструктора
Всем доброго времени суток. Не понимаю работу деструктора. Деструктор вроде как должен освобождать память от того что осталось после класса. Вот для примера код #include <iostream> using...
C++ Вычислить значение функции при разных аргументах, Visual C++ http://www.cyberforum.ru/cpp-beginners/thread627843.html
Всем привет! Нужно написать программку на вычисление функции, но незнаю с чего начать и чем закончить, только начал учить С++ :( Ребята, помогите, очень нужно. Условие: Написать программу на...
C++ Нужно написать программу интерполяции табличной функции кубическим сплайном Помогите написать программу интерполяции табличной функции кубическим сплайном. подробнее

Показать сообщение отдельно
dyosick
62 / 62 / 6
Регистрация: 25.08.2008
Сообщений: 178
24.07.2012, 14:33  [ТС]
А в этом случае невалидность итератора после удаления обрабатывается корректно (или лучше сказать "так, как мне нужно"):
C++
1
2
3
4
5
for (std::map<int, std::string>::iterator it = test_map.begin(); it != test_map.end(); ++it) {
    std::cout << "\nProcess '" << (*it).first << "' Map size = " << test_map.size() << std::endl;
    test_map.erase(it);
    std::cout << "Deleted" << std::endl;
}
Результат:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Process '-9' Map size = 5
Deleted
 
Process '2' Map size = 4
Deleted
 
Process '4' Map size = 3
Deleted
 
Process '28' Map size = 2
Deleted
 
Process '36' Map size = 1
Deleted
 
Map size = 0
End
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.