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

C++

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

Intrusive list template - C++

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

intrusive list template

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

зы задачка учебная, вводные: не использовать шаблонов контрейнеров stl
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2009, 11:20     Intrusive list template
Посмотрите здесь:

list iterator template - C++
пишу в хэдере #include <list> using namespace std; template <class T> struct Transition { list<T>::iterator it; }; ...

Template double linked list C++ - C++
Пытался реализовать шаблон класса двусвязный список, элементарами которого является класс структура. 1. Как теперь инициализировать класс...

Error: '>>' should be '>>' within a nested template argument list - C++
кто знает че за ошибка, как с ней бороться? 000615.cpp: In function 'int main()':

Ошибка "List is not a template" - C++
Всем привет. Я только начала изучать библиотеку stl и тут же столкнулась с проблемой, когда контейнер объявлен в хедере какого-нибудь...

Template - C++
Доброго всем времени суток. Скажите, если я написал в хидере класса template <typename T> class matrix { //------- } что...

template - C++
#include <iostream> #include <string> template <class T, class S> void foo(const T& a, const S& b) { ...

Template - C++
Так не работает template<typename TYPE> struct TElem { TYPE data; TElem* next; int index; }; template<typename TYPE> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
30.08.2009, 11:25     Intrusive list template #2
так ты хочешь? или хочешь чтоб мы написали?)
zim22
depict1
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
Еще ссылки по теме:

template и using - C++
Как правильго затемплейтить данный код?:#include &lt;iostream&gt; #include &lt;iterator&gt; #include &lt;string&gt; #include &lt;map&gt; #include...

Template - C++
Пишу на VS10. Имеется 3 файла: List.h #ifndef LIST_H #define LIST_H //DEList

template+read only - C++
Доброго времени суток, уважаемые форумчане! Суть проблемы такая: Есть некий класс: template&lt;typename T&gt; class Tree { public: ...

Ошибка с template - C++
Доброго всем дня. Не смог толком придумать правильный заголовок, а суть проблемы такая: Есть темплейт функции в отдельном файле,...

Template и Классы - C++
Добрый день, У меня есть несколько классов, допустим A, B и С. У них названия всех методов идентичны (пример: A.foo(), B.foo(),...


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

Или воспользуйтесь поиском по форуму:
_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
Ответ Создать тему
Опции темы

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