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

Удаление элементов вектора с использованием итератора в STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вопрос по деревьям http://www.cyberforum.ru/cpp-beginners/thread141266.html
Имеется структурка: struct tree { char* string; tree* childs; }; Нужно сделать так, чтобы с каждым уровнем количество потомков возрастает в два раза. Не могу понять как это сделать. ...
C++ Сложное задание с массивом Задача проведения границы на карте ("создание военных блоков"). Страны на карте заданы матрицей смежности. Если страны i, j имеют на карте общую границу, то элемент матрицы A равен 1, иначе 0.... http://www.cyberforum.ru/cpp-beginners/thread141238.html
Превратить строку так, чтобы сначала в ней были напечатаны только буквы, а потом только цифры C++
Превратить строку так, чтобы сначала в ней были напечатаны только буквы, а потом только цифры, не меняя порядка прохождения символов в строке.
Сложности в написании кодов C++
Помогите выполнить задачки,желательно с комментариями типа: cout<<"vvedite chislo :"; в билдере с++ 1.Вводится строка произвольного текста и произвольный символ. Подсчитать, сколько раз среди...
C++ Одну строчку немогу написать http://www.cyberforum.ru/cpp-beginners/thread141232.html
Объявлены структура, описывающая точку в пространстве TPoint и массив точек Points: struct TPoint { int X; int Y; }; struct TPoint Points={ {1,5}, {7,10} }; Напечатать...
C++ сложное задание с массивом Задача проведения границы на карте ("создание военных блоков"). Страны на карте заданы матрицей смежности. Если страны i, j имеют на карте общую границу, то элемент матрицы A равен 1, иначе 0.... подробнее

Показать сообщение отдельно
krides
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 2

Удаление элементов вектора с использованием итератора в STL - C++

05.06.2010, 17:24. Просмотров 4149. Ответов 2
Метки (Все метки)

Задача: создать программу, в которую пользователь может ввести свой список из 50 названий игр, а потом при желании удалить выбранную игру. Программа обязательно должна быть написана с использованием векторов и итераторов, использование контейнера list не допускается.

Я читал, что удаление элемента из середины вектора смещает все остальные элементы на один и обнуляет присвоенные вектору итераторы, но совсем не ожидал, что мой способ решения задачи заставит программу крэшить. Если кто-нибудь расскажет, что не так с моим кодом и/или предложит свой вариант решения задачи, буду очень благодарен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   vector<string> games;
    vector<string>::iterator myIterator;
    vector<string>::const_iterator iter;
    vector<string>::iterator deleteIter;
    char aGame[100];
    string deleteString;
 
cout << "\nIf you want to delete a game from the list, type in 'delete'." << endl;
       cout << "To add a new one type in it's name: ";
       cin.getline(aGame, 50);
       deleteString = aGame;
       if (deleteString == "delete")
       {
                 cout << "Delete the game called: ";
                 cin.getline(deleteGame, 50);
                 deleteIter = games.begin();
                 for (deleteIter = games.begin(); deleteIter != games.end(); ++deleteIter);
                     if (*deleteIter == deleteString)
                        games.erase(deleteIter);
       }
       else
       {
       games.insert(games.end(), aGame);
       }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.