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

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

Войти
Регистрация
Восстановить пароль
 
VIKT0R
8 / 8 / 2
Регистрация: 15.11.2011
Сообщений: 85
#1

Переместить элемент внутри списка std::list - C++

08.07.2015, 11:46. Просмотров 420. Ответов 8
Метки нет (Все метки)

Что-то я не пойму, простая вроде задача - переместить элемент внутри спиcка std::list - стандартной функции нету что-ли?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2015, 11:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переместить элемент внутри списка std::list (C++):

Получение предыдущего объекта из списка (std::list) - C++
#include <Iostream> int main() { std::list<COORD*> coords; COORD* pCoord; for(uint16 i = 0; i < 10; ++i) ...

Как получить указатель на объект класса из списка std::list? - C++
Как получить указатель на объект класса из списка list? Правильно ли list<Myclass> ::iterator it =Class.begin(); advance(it,2); ...

Как удалить первый элемент из std::list? - C++
Скажите как удалить первый элемент из лист ругается вот как 181 C:\Documents and Settings\Loner\Рабочий стол\5.37\Bin.cpp 'class...

В непустом динамическом списке последний элемент переместить в начало списка - C++
Добрый день! Помогите пожалуйста. Ниже код,который был дан как образец в методичке и был переделан под свое задание. Задание текущее в...

Переместить элемент в конец списка и вывести указатели на первый и последний элементы - C++
Помогите, пожалуйста! Прошу вас о помощи в написании программы на С++... Задача такова: Дан указатель P0 на один из элементов непустого...

Реализация std::list, сложность list::size() - C++
Часто приходилось пользоваться Listом, но сейчас столкнулся с небольшой неоднозначностью. Согласно документации, метод size() в 11...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
08.07.2015, 11:47 #2
erase,insert?
VIKT0R
8 / 8 / 2
Регистрация: 15.11.2011
Сообщений: 85
08.07.2015, 12:00  [ТС] #3
Нет, ну понятно - я могу сделать insert в новую позицию, потом erase старой позиции, но при этом ведь еще нужно проверить, не совпадают ли старая и новая позиции, а то останешься без данных.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.07.2015, 12:11 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
VIKT0R, http://www.cplusplus.com/reference/list/list/splice/
VIKT0R
8 / 8 / 2
Регистрация: 15.11.2011
Сообщений: 85
08.07.2015, 13:10  [ТС] #5
Tulosba, спасибо, работает. Хотя я ожидал чего-то типа list::move( target_pos, source_pos ) - наверное разработчики поленились сделать.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.07.2015, 14:00 #6
VIKT0R, лучше не перегружать интерфейс лишними функциями. К тому же, если есть метод для более общего случая.
Max Dark
шКодер самоучка
1814 / 1615 / 589
Регистрация: 09.10.2013
Сообщений: 3,622
Записей в блоге: 6
Завершенные тесты: 2
08.07.2015, 15:50 #7
Хм.. а std::swap тут разве не подойдет?
C++
1
2
3
4
5
auto iter1 = lst.begin();
auto iter2 = ...;
 
//....
std::swap(*iter1, *iter2);
Добавлено через 9 минут
Извиняюсь, понял, что не понял вопроса)
VIKT0R
8 / 8 / 2
Регистрация: 15.11.2011
Сообщений: 85
08.07.2015, 15:59  [ТС] #8
Cra3y, спасибо, тоже работает, но splice больше подходит по смыслу, т.к. мне не нужно обменивать элементы.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.07.2015, 16:11 #9
Cra3y, swap будет вызывать конструктор копирования/перемещения подлежащих объектов, а splice не будет. Ну и смысл всё же разный
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2015, 16:11
Привет! Вот еще темы с ответами:

Переместить данный элемент в конец двусвязного списка и вывести указатели на первый и последний элементы - C++
Ребятки, помогите решить, пожалуйста) Дан указатель P0 на один из элементов непустого двусвязного списка. Переместить данный элемент в...

Передача функции указатель на элемент std::vector<std::string> - C++
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...

Потокобезопасность std::map::end, std::list::end - C++
Собсна сабж, могу ли я без синхронизаций выполнять подобного рода код if (myIter != map.end()) // != list.end() {...} myIter =...

Создать класс Элемент списка (Node), а затем класс Список (List) - C++
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...


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

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

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