С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
1

Erase map

26.12.2016, 17:26. Показов 1826. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, мне необходимо удалить из MAP некоторое количество элементов, сейчас я делаю это вот так, но как то не очень красиво
C++
1
2
3
4
5
for (i = 0, itMap = mapArr.begin(); i<to_erase; i++)
{
   mapArr.erase(itMap);
   itMap = mapArr.begin();
}
C++
1
2
3
4
for (i = 0, itMap = mapArr.begin(); i<to_erase; i++, itMap++)
{
   mapArr.erase(itMap);
}
если пытаюсь сделать вот так, дает ошибку
"Expression: map/set iterator not incrementable"
нельзя сделать как то по другому, кроме как в первом варианте?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2016, 17:26
Ответы с готовыми решениями:

Поместить вектора в map и реализовать перегрузку вывода для map
Всем привет! Нужна помощь в написании программы. У меня есть вот такая прога и мне нужно каким-то...

Обращение к элементам vector, который находится в map, находящийся в map
Всем добрый день! Имеется такой контейнер. Как обращаться к элементам вектора и как пушбэчить...

Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std::map?
Здравствуйте. Возможно ли создать контейнер std::map, в котором в качестве значения была бы...

Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ?
У меня есть map&lt;string, map&lt;string,int&gt;&gt;, в него надо добавить элементы (типа Ivanov potato 200)...

5
230 / 113 / 79
Регистрация: 17.10.2016
Сообщений: 312
26.12.2016, 17:37 2
есть же перегрузка для erase
iterator erase (const_iterator first, const_iterator last);

Добавлено через 38 секунд
да и удалять в цикле не совсем хорошая идея.
0
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
26.12.2016, 17:39  [ТС] 3
Цитата Сообщение от John999 Посмотреть сообщение
да и удалять в цикле не совсем хорошая идея.
а как лучше? если надо удалить не все элементы, а определенное количество? создать новую мапу и туда скопировать не с первого элемента, а с 6-ого например, если мне первые пять удалить?
0
230 / 113 / 79
Регистрация: 17.10.2016
Сообщений: 312
26.12.2016, 17:44 4
Цитата Сообщение от итернал Посмотреть сообщение
а определенное количество?
Map это дерево. В нём нет итерации как в массиве. Какое количество? Чего?
Не понял...
0
4 / 4 / 6
Регистрация: 17.09.2012
Сообщений: 325
26.12.2016, 17:48  [ТС] 5
Цитата Сообщение от John999 Посмотреть сообщение
Map это дерево. В нём нет итерации как в массиве. Какое количество? Чего?
Не понял...
ну вот у меня есть MAP, с 50 элементами, а надо сделать что бы была на 45, те которые лежат с 5 по 50
0
230 / 113 / 79
Регистрация: 17.10.2016
Сообщений: 312
26.12.2016, 17:51 6
C++
1
2
3
std::map<int, int>::iterator it = mymap.find(5);
 
mymap.erase(mymap.begin(), it);
2
26.12.2016, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2016, 17:51
Помогаю со студенческими работами здесь

Как вставить map в map
есть такой map map &lt; INT64 , map &lt;INT64 , map&lt; wArray , int &gt; &gt; &gt; tMenu; как его заполнить?...

Emplace в std::map. Как добавить элемент в std::map без копирования?
здравствуйте... есть ли способ не писать так: std::map&lt;int, char&gt; ksa;...

vector::erase()?
есть вектор структур struct person{ string name; int age; vector &lt;person&gt; repw;

работа erase
написал вот такой код // Example program #include &lt;iostream&gt; #include &lt;string&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru