Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: begin end, doubled linked list  (Прочитано 29402 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mayor
Специалист

ru
Offline Offline

« Ответ #30 : 01-08-2009 02:49 » 

Mayor, самый простой случай - знать лишь указатель на самый первый элемент двусвязного списка. Если класс написать аккуратно, используя мутексы, то этого уже достаточно для чёткой работы.

тут не нужны мутексы, пусть со списком одновременно работает только 1 функция, мне нужно, чтобы после работы swap и ей подобных функций не пропадал указатель на начало и конец списка
Записан

1n c0de we trust
Mayor
Специалист

ru
Offline Offline

« Ответ #31 : 01-08-2009 02:51 » 

Лично я давно перешел в C++ с самописных списков на STL. Ибо нефиг изобретать велосипед. В ядре Linux используются собственные списки только потому, что ядро не использует библиотек и написано на C, а не C++.

вернись к первому посту, я тренируюсь, когда придет время я использую stl, а пока мне нужен самопальный список или даже просто описание его интерфейсов
Записан

1n c0de we trust
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 01-08-2009 03:55 » 

Mayor, почитай заголовок linux/list.h - там все разжевано и задокументировано. Только ленивый не поймет, что к чему. Теория проста до безобразия.

я прочитал мне не понятно

Конкретно — что не понятно?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #33 : 01-08-2009 04:06 » 

Mayor, если ты запланировал всю жизнь сидеть в досе или в другой однозадачной системе, то про мутексы забудь Улыбаюсь. А в многозадачной даже одну функцию можно одновременно вызвать из разных потоков

а указатель не пропадёт - это невозможно, если всё правильно написано
Записан

Mayor
Специалист

ru
Offline Offline

« Ответ #34 : 01-08-2009 05:50 » 

а указатель не пропадёт - это невозможно, если всё правильно написано

с данными тобой ранее советами:
Mayor, нет логики в словах: указатель на начало списка - это указатель на самый первый элемент в списке. После сортировки первый элемент может поменяться. Зачем следить за ним ? А конец списка можно найти рекурсивно, начиная с первого элемента
пропадет
Записан

1n c0de we trust
Mayor
Специалист

ru
Offline Offline

« Ответ #35 : 01-08-2009 06:06 » 

Конкретно — что не понятно?

все не понятно, очень сложно используются макросы ...

я вот щас про классы и объекты начал читать, по идее с позиций ООП если дописать:
struct head{
dl_list *begin;
dl_list *end;
}
и начать передавать ссылку на нее в каждую фукнцию, работающую со списком, то хоть это и муторно, но каждая функция сможет позаботится, о том, чтобы после ее работы указатели на начало и конец списока оставались актуальны

естественно придется не сохранять итераторы между вызовами функций, но это уже для 1 поточной среды не критично
Записан

1n c0de we trust
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #36 : 01-08-2009 06:06 » new

не вижу разногласия между "указатель не поменялся" и "элемент поменялся"

----------
И ещё настоятельно рекомендую не делить сообщение по нескольким постам, пиши в один пост, а не три рядом. А то стану удалять, так как собирать в кучу лень (думаю никто меня сильно не осудит)
« Последнее редактирование: 01-08-2009 06:08 от Алексей1153++ » Записан

Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines