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

STL list - C++

Восстановить пароль Регистрация
 
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
30.03.2013, 19:34     STL list #1
Доброго времени суток, пока имею поверхностное представление о алгоритмах STL и функциях для контейнеров, но есть задача:

требуется поменять местами первый и последний элемент списка, вот мой вариант

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T>
void swap(list<T> &_coll)
{
    list<T>::iterator pos = --_coll.end();                //запоминаем позицию последнего
 
    _coll.splice(_coll.end(),                                      //первый делаем последним
                 _coll,                         
                 _coll.begin());                
 
    _coll.splice(_coll.begin(),                                      //бывший последний делаем первым
                 _coll,                         
                 pos);                          
}
далеко не лучший способ... вот хотел узнать, какие еще можно найти способы, заранее буду благодарен за ваши варианты
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 19:34     STL list
Посмотрите здесь:

C++ STL vector,list
C++ STL>>list<_Ty>
C++ STL List
C++ stl::list erase()
List STL C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.03.2013, 19:50     STL list #2
C++
1
std::iter_swap(l.begin(), l.rbegin());
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.03.2013, 19:53     STL list #3
std::swap
У листа есть итераторы std::list::begin и std::list::rbegin

Добавлено через 3 минуты
Цитата Сообщение от soon Посмотреть сообщение
std::iter_swap(l.begin(), l.end())
Проверте второй параметр.
soon
30.03.2013, 19:54
  #4

Не по теме:

go, уже.

Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
30.03.2013, 19:56     STL list #5
А чем
C++
1
std::swap( l.front(), l.back());
не подходит?
Yandex
Объявления
30.03.2013, 19:56     STL list
Ответ Создать тему
Опции темы

Текущее время: 04:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru