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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
#1

Intrusive list template - C++

30.08.2009, 11:20. Просмотров 1223. Ответов 6
Метки нет (Все метки)

intrusive list template

для тренировки хочу попробовать написать шаблон списка, который объединяет и принимает элементы унаследованные или созданые от базового класса

зы задачка учебная, вводные: не использовать шаблонов контрейнеров stl
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
30.08.2009, 11:25     Intrusive list template #2
так ты хочешь? или хочешь чтоб мы написали?)
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
30.08.2009, 11:35     Intrusive list template #3
boost::intrusive::list
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
30.08.2009, 16:19  [ТС]     Intrusive list template #4
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
так ты хочешь? или хочешь чтоб мы написали?)
ну можно, чтоб написали или подсказали как это делается

меня в основном интересует, как сделать в компиляторе проверку, что в шаблон подсунут потомок базового класса

Добавлено через 1 час 1 минуту
и еще интересует как по возможности избежать оверхида, если проверку компилятора кинет в рантайм

зы ваще есть возможность проверить перед генерацией шаблона от кого был унаследован его параметр и если что прервать генерацию?
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
30.08.2009, 21:15  [ТС]     Intrusive list template #5
похоже я запутался как в реалзиации, так и в терминах ...

в общих чертах, пока безо всяких template, чем отличается intrusive от non-intrusive контейнеры?
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
31.08.2009, 19:26  [ТС]     Intrusive list template #6
вроде разобрался

intrusive_list<T> практически тоже самое, что list<T*>

какими тестами и как обычно сравнивают производительность реализаций списков?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2009, 19:13     Intrusive list template
Еще ссылки по теме:

Реализация std::list, сложность list::size() C++
'MyQueue' : use of class template requires template argument list C++
C++ В чем различие template <typename T> от template <class T> ?
Записать в файл list (очередь) объектов, в которых содержатся строки string, и считать с файла обратно в list C++
Ошибка "List is not a template" C++

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

Или воспользуйтесь поиском по форуму:
_mayor
1 / 1 / 0
Регистрация: 29.08.2009
Сообщений: 63
01.09.2009, 19:13  [ТС]     Intrusive list template #7
увяз в коде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
struct slink {
    slink* next;
    slink(slink* p=0):next(p) {}
};
 
struct lint: public slink {
    int i;
    //bool operator==(const lint& l) { return i==l.i;}
    //bool operator!=(const lint& l) { return i!=l.i;}
};
 
template<class T> class intrusive_list {
    T *head;
    T *last;
    size_t s;
    public:
    class iterator {
        T* p;
        public:
        iterator(T* pp):p(pp) {}
        iterator& operator++(int ) { 
            p=p->next;
            return *this;
        }
        T& operator*() { return *p; }
как обычно конфликт
T* p;
p=p->next

решают?
Yandex
Объявления
01.09.2009, 19:13     Intrusive list template
Ответ Создать тему
Опции темы

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