Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2009, 23:54   #1
("")(Э_Є)("")
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 112
По умолчанию STL цыкличиский список

Мне нужен контейнер - двусвязный список, в котором последний элемент указывает вперёд на первый, а первый взад на последний.

Спасибо

PS. В крайнем случае сойдет элегантный самопал.
("")(Э_Є)("") вне форума Ответить с цитированием
Старый 07.05.2009, 00:12   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
std::list<type> List
?
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 07.05.2009, 00:44   #3
("")(Э_Є)("")
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 112
По умолчанию

M$тест

Код:
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
				 std::list<int> L;
				 L.push_back(1);
				 L.push_back(2);
				 std::list<int>::iterator& itr = L.begin();
				 itr--;
				 if (*itr == 2)
				 {
				  this->Close();
				 }
Жмякаю батон и меня посылают матом.

Может я как-то не корректно выразился. Может мне не контейнер нужен а спец итератор ?
("")(Э_Є)("") вне форума Ответить с цитированием
Старый 07.05.2009, 00:55   #4
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Можете уточнить свой вопрос (что именно вы хотите сделать?)
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 07.05.2009, 00:59   #5
("")(Э_Є)("")
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 112
По умолчанию

Мы хотим сделать циклический список. Точнее использовать готовый
("")(Э_Є)("") вне форума Ответить с цитированием
Старый 07.05.2009, 01:07   #6
("")(Э_Є)("")
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 112
По умолчанию

>>>--- node1 -- node2 -- node3 -- node4 --->>>

Где начало = конец, но нет ни начала ни конца, только бесконечность...

Конечно, можно добавить if с проверкой и если итератор указывает на начало, то при вызове оператор-- установить его на конец списка, оператор++ аналогично. Но мне такой вариант не нравится, тогда нужно писать ракушку c шаблонами... Может есть вариант "в лоб" ?

Последний раз редактировалось ("")(Э_Є)(""); 07.05.2009 в 01:22.
("")(Э_Є)("") вне форума Ответить с цитированием
Старый 07.05.2009, 02:23   #7
("")(Э_Є)("")
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 112
По умолчанию

НаГуглил

Цитата:
> Возможно ли средствами STL получить список (list, map?) в котором
> последний элемент списка указывает на первый, а первый элемент на
> последний. Кольцо такое своеобоазное, что если по нему пробегать
> итератором то получается бесконечный цикл.
Цитата:
Теоретически, это противоречит идеологии, лежащей в основе STL.
Чему должен быть равен end() такого контейнера, если он не имеет права
быть равным begin() для непустого контейнера и от begin() до end()
можно добраться за конечное число iterator:perator++
Будем колдовать.

Последний раз редактировалось ("")(Э_Є)(""); 07.05.2009 в 02:26.
("")(Э_Є)("") вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод с помощью STL _ares_ Общие вопросы C/C++ 2 19.03.2009 22:06
STL Cpluser Общие вопросы C/C++ 2 22.02.2009 23:35
Отсортировать с помощью STL структуру Иллидан Общие вопросы C/C++ 2 12.11.2008 17:19
[C++]STL Mumriksnus Общие вопросы C/C++ 1 02.07.2008 20:43
Сортировка в STL xz121 Общие вопросы C/C++ 3 09.06.2008 19:30