0 / 0 / 1
Регистрация: 26.03.2011
Сообщений: 85
|
||||||
1 | ||||||
STL контейнер set, вставка элементов11.06.2013, 14:41. Показов 5671. Ответов 13
Метки нет (Все метки)
Уважаемые админы.Снова прошу о помощи. Необходимо в множество bred,начиная с позиции n, вставить элементы из множества new_bred.
Кликните здесь для просмотра всего текста
0
|
11.06.2013, 14:41 | |
Ответы с готовыми решениями:
13
STL, контейнер set Позиция элемента в контейнере STL кон. SET, поиск контейнер set словарь позиция Используя STL контейнер set заполнить массив Сохранить порядок следования элементов используя лишь контейнер <set> |
0 / 0 / 1
Регистрация: 26.03.2011
Сообщений: 85
|
|
11.06.2013, 14:47 [ТС] | 3 |
А можно хотя бы примерный код. А то у меня временами ступор с циклами возникает. Какие именно циклы вложить один в одного. Хотя бы левый пример.Я сама под свой напишу.
И еще. Я не нашла при работе с set такой функции.
0
|
11.06.2013, 14:50 | 4 |
http://www.cplusplus.com/reference/algorithm/copy/
она не в самом сете реализована.
1
|
0 / 0 / 1
Регистрация: 26.03.2011
Сообщений: 85
|
|
11.06.2013, 16:02 [ТС] | 5 |
Разобралась немного. В сет врядли можно в определенную позицию вставить. Можно в конец. А оно автоматически отсортирует.
0
|
0 / 0 / 1
Регистрация: 26.03.2011
Сообщений: 85
|
|||||||||||
11.06.2013, 18:45 [ТС] | 7 | ||||||||||
Вы правы. У меня следующая проблема. Попыталась реализовать функцию вставки с помощью copy.Но выдает ошибку(ссылаясь конкретно на описание данной функции типа:
Вот кусок моего кода с функцией:
0
|
Форумчанин
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
11.06.2013, 19:04 | 8 |
правильно, pos - const_iterator, а copy запихивает в контейнер, на который ссылается итератор pos, диапазон значений, тем самым модифицируя его. Для этого надо иметь обычный итератор, вот он и ругается.
0
|
0 / 0 / 1
Регистрация: 26.03.2011
Сообщений: 85
|
||||||
11.06.2013, 19:11 [ТС] | 9 | |||||
Но разве в set предусмотрена работа не с константным указателем? Как мне изменить данную часть кода?
Попробовала объявить след образом:
0
|
0 / 0 / 1
Регистрация: 26.03.2011
Сообщений: 85
|
||||||
11.06.2013, 20:06 [ТС] | 11 | |||||
Пробовала уже и в end. Безрезультатно. Вот код:
Код
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility:2144: ошибка: C3892: _Dest: невозможно присваивать значения переменной, которая объявлена как константа C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(2165): см. ссылку на создание экземпляров функции шаблон при компиляции "_OutIt std::_Copy_impl<std::_Tree_unchecked_const_iterator<_Mytree>,_OutIt>(_InIt,_InIt,_OutIt,std::_Nonscalar_ptr_iterator_tag)" with [ _OutIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>>, _Mytree=std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>, _InIt=std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>> ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(2186): см. ссылку на создание экземпляров функции шаблон при компиляции "_OutIt std::_Copy_impl<_InIt,_OutIt>(_InIt,_InIt,_OutIt)" with [ _OutIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>>, _InIt=std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>> ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(2206): см. ссылку на создание экземпляров функции шаблон при компиляции "_OutIt std::_Copy_impl<_InIt,_OutIt>(_InIt,_InIt,_OutIt,std::input_iterator_tag,std::output_iterator_tag)" with [ _OutIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>>, _InIt=std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>> ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(2227): см. ссылку на создание экземпляров функции шаблон при компиляции "_OutIt std::_Copy_impl<std::_Tree_unchecked_const_iterator<_Mytree>,_OutIt>(_InIt,_InIt,_OutIt,std::tr1::true_type)" with [ _OutIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>>, _Mytree=std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>, _InIt=std::_Tree_unchecked_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>> ] .\main.cpp(57): см. ссылку на создание экземпляров функции шаблон при компиляции "_OutIt std::copy<std::_Tree_const_iterator<_Mytree>,std::_Tree_const_iterator<_Mytree>>(_InIt,_InIt,_OutIt)" with [ _OutIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>>, _Mytree=std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>, _InIt=std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<int,std::less<int>,std::allocator<int>,false>>> ]
0
|
Форумчанин
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||||||
12.06.2013, 05:51 | 12 | ||||||||||
1
|
0 / 0 / 1
Регистрация: 26.03.2011
Сообщений: 85
|
|
12.06.2013, 10:20 [ТС] | 13 |
Спасибо. Позже гляну, или оно у меня компилится. Я нашла функцию set_union и объединила с помощью нее. Но вариант с copy мне больше нравится.
0
|
Форумчанин
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
12.06.2013, 15:12 | 14 |
Дев4енка, предвидя ошибки:
Для вывода результатов я использовал for-цикл по коллекции, вы можете изменить его на любой свой, мне просто так удобнее и быстрее, но является часть С++11, который VS10 не поддерживает.
1
|
12.06.2013, 15:12 | |
12.06.2013, 15:12 | |
Помогаю со студенческими работами здесь
14
STL: контейнеры. Произвольная вставка элементов Контейнер set Контейнер set контейнер set Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |