Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
#1

Не работает объединение двух векторов - C++

07.11.2012, 20:45. Просмотров 608. Ответов 7
Метки нет (Все метки)

есть такой код:
C++
1
set_union(p[i].elems->begin(), p[i].elems->end(), p[j].elems->begin(), p[j].elems->end(), tst.begin());
где tst и p[i].elems есть vector<string>.

При компиляции получаю сообщение, что итератор вектора не увеличиваемый (vector iterator not incrementable). Что можно сделать в данной ситуации?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 20:45     Не работает объединение двух векторов
Посмотрите здесь:

Объединение двух векторов - C++
почему не получается занести элементы в vector v ?? int main() { vector&lt;int&gt;v; vector&lt;int&gt;v1; vector&lt;int&gt;v2; for (int i...

Вычисление суммы двух векторов - C++
Помогите с задачей: Заданы k векторов X1, X2,…, Xk. Найти их сумму X1+ X2+… + Xk. Функция: вычисление суммы двух векторов.

Удалить повторяющиеся элементы из двух векторов - C++
Доброго времени суток! Есть два вектора, нужно найти повторяющиеся элементы и удалить их из обоих векторов, оставив только первое...

Сортировка двух векторов (имена и возраст) - C++
Имеется вектор строк, которые обозначают имена, и вектор чисел, означающий их возрасты. Нужно написать функцию sort() которая бы...

Перегрузка оператора == для двух векторов - C++
помогите написать перегрузку оператора == для 2 векторов.

Работа с классами(сложения двух векторов) - C++
Составить описание класса. Определить конструктор по умолчанию, конструктор с параметрами и методы класса. Написать программу,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
07.11.2012, 22:31     Не работает объединение двух векторов #2
Какие нужно объединить вектора?
p[i] с чем?
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.11.2012, 22:39     Не работает объединение двух векторов #3
Цитата Сообщение от iRomul Посмотреть сообщение
Что можно сделать в данной ситуации?
Показать более полный код с типами.
Ну и сразу же замечание - вы точно знаете размер результата? Если нет, то в качестве выходного итератора стоит передавать, к примеру, std::back_inserter.
Цитата Сообщение от iRomul Посмотреть сообщение
p[i].elems есть vector<string>
А зачем тогда
C++
1
->
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
07.11.2012, 22:47     Не работает объединение двух векторов #4
объединение двух объектов класса? а сортировка есть?
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
07.11.2012, 23:03  [ТС]     Не работает объединение двух векторов #5
Цитата Сообщение от Sor Посмотреть сообщение
объединение двух объектов класса? а сортировка есть?
Есть

Проблему решил так:
C++
1
p[i].elems->begin(), p[i].elems->end(), p[j].elems->begin(), p[j].elems->end(), back_inserter(*tst)
Только непонятно, что такое back_inserter(). Можете пояснить?
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.11.2012, 23:13     Не работает объединение двух векторов #6
Цитата Сообщение от iRomul Посмотреть сообщение
Только непонятно, что такое back_inserter(). Можете пояснить?
Если не заморачиваться с реализацией, то он просто вставляет элементы в вектор через push_back.
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
07.11.2012, 23:21     Не работает объединение двух векторов #7
как-то странно. проблемы были в коде:
... tst.begin());
а решилось все
... back_inserter(*tst)

похоже что tst - указатель на контейнер и в первом варианте должно было быть ... tst->begin());
но описание ошики смущает. впрочем именно вставка в конец скорее всего и нужна, т.к. размер объединенных векторов врятли известен перед объединением.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 23:28     Не работает объединение двух векторов
Еще ссылки по теме:

Вычислить скалярное произведение двух векторов - C++
7.6.1. Помогите, пожалуйста, решить задачу в С++. Вычислить скалярное произведение двух векторов.

Слияние двух векторов в третий по условию - C++
Здравствуйте, подскажите пожалуйста как написать сравнение двух массивов (массив старых и массив новых значений) с записью в третий...

Разобраться в функции перемножения двух векторов - C++
Здравствуйте, помогите разобраться в функции, для перемножения двух векторов. Хочу получить ответ хотя бы на один вопрос. Заранее спасибо. ...

Сравнить каждый элемент двух векторов - C++
добрый день ! мне нужно сравнить каждый элемент двух векторов, т.е. vector1 &gt; vector2 . вопрос. есть ли для таких случаев функции или как...


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

Или воспользуйтесь поиском по форуму:
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
07.11.2012, 23:28  [ТС]     Не работает объединение двух векторов #8
DU, дело в том, что после создания 1 поста я еще посидел и немного переделал. Теперь tst есть указатель на vector<string>. По этому так и вышло. А back_inserter() и правда стал решением. Спасибо всем!
Yandex
Объявления
07.11.2012, 23:28     Не работает объединение двух векторов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru