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

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

Войти
Регистрация
Восстановить пароль
 
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
#1

STL list - C++

30.03.2013, 19:34. Просмотров 641. Ответов 4
Метки нет (Все метки)

Доброго времени суток, пока имею поверхностное представление о алгоритмах 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 Iterator
C++ STL List
C++ stl::list erase()
List STL C++
STL list C++
C++ Удаление list STL
Работа с STL list + пропись List.h C++
Программа с List из STL C++
C++ Реализация list из STL

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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++
3584 / 1364 / 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 / 51
Регистрация: 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
Ответ Создать тему
Опции темы

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