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

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

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

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

07.11.2012, 20:45. Просмотров 614. Ответов 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). Что можно сделать в данной ситуации?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 20:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает объединение двух векторов (C++):

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

Объединение векторов - C++
Есть 2 вектора разной размерности vector1 и vector2, тип данных идентичен, как добавить vectror2 к vector1, в конец. Без использования...

Определить объединение из двух полей Первое поле - массив из двух байт, второе - слово - C++
Помогите написать программу( лучше с комментариями чтобы разобраться) Определить объединение из двух полей Первое поле - массив из двух...

Определить объединение из двух полей. Первое поле - массив из двух байт, второе - слово - C++
Определить объединение из двух полей. Первое поле - массив из двух байт, второе - слово. Ввести x в диапазоне от 1 до 15. Вычислить целое...

Объявить объединение из двух структур и структуру из двух объединений - C++
Объявить объединение из двух структур и структуру из двух объединений. Заполнить значениями, вывести на экран.

Создать класс для обработки векторов разность векторов норму векторов - C++
Создать класс для обработки векторов разность векторов норму векторов

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
07.11.2012, 22:31 #2
Какие нужно объединить вектора?
p[i] с чем?
0
diagon
Higher
1929 / 1195 / 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
->
0
Sor
35 / 35 / 0
Регистрация: 24.11.2011
Сообщений: 309
07.11.2012, 22:47 #4
объединение двух объектов класса? а сортировка есть?
0
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(). Можете пояснить?
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.11.2012, 23:13 #6
Цитата Сообщение от iRomul Посмотреть сообщение
Только непонятно, что такое back_inserter(). Можете пояснить?
Если не заморачиваться с реализацией, то он просто вставляет элементы в вектор через push_back.
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
07.11.2012, 23:21 #7
как-то странно. проблемы были в коде:
... tst.begin());
а решилось все
... back_inserter(*tst)

похоже что tst - указатель на контейнер и в первом варианте должно было быть ... tst->begin());
но описание ошики смущает. впрочем именно вставка в конец скорее всего и нужна, т.к. размер объединенных векторов врятли известен перед объединением.
0
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
07.11.2012, 23:28  [ТС] #8
DU, дело в том, что после создания 1 поста я еще посидел и немного переделал. Теперь tst есть указатель на vector<string>. По этому так и вышло. А back_inserter() и правда стал решением. Спасибо всем!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 23:28
Привет! Вот еще темы с ответами:

Сумма двух векторов - C++
добрый вечер, имеется программа которая : &quot;Создать 2 вектора (массива) с 1000 элементами из случайных чисел. Сложить эти вектора....

Слияние двух векторов - C++
Дано два одномерных массива A и B. Помогите, пожалуйста с кодом: нужно соединить их в один массив C.

Сортировка двух векторов одновременно - C++
Всем доброго времени суток! Дано: набор отрезков, начала которых хранятся в векторе а, концы -- в векторе b. Задача:...

Сравнение длины двух векторов - C++
Как мне правильно сравнить величины векторов??? Длину я вычислил, сравнить не могу)) class Vector { float x, y, z; public: ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.11.2012, 23:28
Ответ Создать тему
Опции темы

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