С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 207
1

Синхронизация map и vector. Iterator not incrementable

10.06.2016, 15:45. Показов 3557. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
День добрый. Надо синхронизровать vector и map, чтобы в них были только одинаковые элементы.
Вот мой код, который выбрасывает ошибку. (Скрин во вложениях). Вопрос: в чем проблема?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void synchronize(map<int, int> *m1, vector<int>* vec1)
{
    map<int, int>::iterator itr_m1;
    map<int, int>::iterator itr2_m1 = m1->begin();
    int* p_vec = vec1->data();
    for (int i = 0; vec1->size(); i++) {
        for (itr2_m1 = m1->begin(); itr2_m1 != m1->end(); itr2_m1++)
        {
            if (itr2_m1->second != p_vec[i])
            {
                m1->erase(itr2_m1);
            }
 
        }
        itr2_m1 = m1->begin();
    }
 
}
Миниатюры
Синхронизация map и vector. Iterator not incrementable  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.06.2016, 15:45
Ответы с готовыми решениями:

Vector iterator not incrementable
Здравствуйте. Подскажите, из-за чего не работает код? При запуске программы появляется ошибка:...

Ошибка при запуске программы "vector iterator not incrementable"
при запуске программы (без разницы какой функции) вылетает ошибка (заг. темы) как это исправить?...

Ошибка list iterator not incrementable
код: std::list&lt;Platform * &gt; Platform::Platform_list; //статическое поле класса Platform ...

Ошибка в роботе с контейнером: set iterator not incrementable
Задание:Дано предложение.Какие большие и маленькие буквы с этих 'k','p','s','t','f','h','c' не...

7
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.06.2016, 15:50 2
После удаления итератор становится недействительным. Не используй такой цикл.
0
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 207
10.06.2016, 15:59  [ТС] 3
То есть использовать другой итератор? Или есть варианты получше?
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.06.2016, 17:30 4
Что вообще пытаешься сделать? У тебя удаление идёт сразу по первому несовпадению, а если другие элементы вектора совпадают?
0
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 207
10.06.2016, 19:20  [ТС] 5
Мне нужно синхронизировать содержимое vector и map так чтобы в одном контейнере были только те элементы что и в другом.
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.06.2016, 20:29 6
map содержит пары. Как ты их сопоставлять будешь?
0
260 / 208 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
10.06.2016, 20:43 7
C++
1
2
3
   for (int i: v) {
    
   }
0
29 / 29 / 18
Регистрация: 20.12.2010
Сообщений: 119
10.06.2016, 21:38 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void synchronize(map<int, int> *m1, vector<int>* vec1) {
    std::map<int, int>::iterator iter = m1->begin();
    std::map<int, int>::iterator endIter = m1->end();
 
    for (; iter != endIter; ) {
        if ( find(vec1->begin(), vec1->end(), iter->second) == vec1->end()) {
            iter = m1->erase(iter);
        }
        else {
            ++iter;
        }
    }
 
}
0
10.06.2016, 21:38
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2016, 21:38
Помогаю со студенческими работами здесь

vector<T> template vector<T>::iterator
Здраствуйте! При написании вектора столкнулся с проблемой такого рода: вот код вектора template...

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

Std::vector<std::pair<std::vector<int>::iterator, std::vector<int>::iterator>
Вопрос по вектору. Допустим есть вектор, std::vector&lt;int&gt; vec; на каком - то этапе заполнения я...

Map iterator
map&lt;string, int&gt; m; m.insert(pair&lt;string, int&gt;(&quot;a&quot;, 1)); map&lt;string, int&gt;::iterator it =...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru