![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
надо реализовать MRU list, хорошая ли это идея делать это на std::list ?
по сути я так понимаю там одна операция, если появился новый элемент, то вставляем его в начало, если обратились к какому либо элементу, то удаляем его с его места и вставляем его в начало. возможно у кого то есть что то уже готовое. Добавлено через 1 минуту и 38 секунд + наверно надо его лочить при каких либо его изменениях, как это можно сделать прямо в классе? |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
только придется находить элемент каждый раз, а это линейный поиск, но иначе не выйдет. Если сортировать по последнему использованию, то поиск по чему нибудь другому так или иначе будет линейный, или можно завести два контейнера, но не думаю, что в этом есть необходимость.
Зачем? Доступ происходит из нескольких потоков? Это сообщение отредактировал(а) azesmcar - 17.4.2012, 10:02 |
||||
|
|||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
||||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
boost::mutex, std::mutex, critical section. Для объекта. Нет. Можно разве что с помощью атомарных операций с этой переменной, тогда получится обыкновенный spin lock, но это не самая лучшая идея. Если есть компилятор с поддержкой нового стандарта, то используй std::mutex, если нет, но есть boost - бери boost::mutex, если и этого нет, но платформа windows - тогда Critical Section, если платформа *nix - тогда pthread_mutex. Также есть решения в Qt. Это сообщение отредактировал(а) azesmcar - 17.4.2012, 10:59 |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
В бусте я где-то видел готовое решение для быстрого (индексированного) MRU-списка.
Добавлено через 2 минуты и 16 секунд А вот нашёл: http://www.boost.org/doc/libs/1_41_0/libs/...rialization.cpp |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |