быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
1 | ||||||
Как вы шаблонном классе определить контейнер, тип которого совпадает с именем параметра шаблона?15.12.2011, 23:25. Показов 3196. Ответов 12
Метки нет (Все метки)
собсно
0
|
15.12.2011, 23:25 | |
Ответы с готовыми решениями:
12
В шаблонном классе, один из параметров которого контейнер, объявить итератор этого контейнера Переменная, содержащая тип, в шаблонном классе Как описывать функции, заданные в шаблоне класса, тип возвращаемого значения которых совпадает с именем класса Итераторы, как параметры лябда-функций в шаблонном классе |
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
15.12.2011, 23:34 | 2 | |||||
надо смотреть в сторону шаблоных параметров шаблонов. но заюзать стл контейнеры переносимо не получится. все потому, что у них не стандартизировано количество параметров по умолчанию.
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
15.12.2011, 23:59 [ТС] | 3 | |||||
Синтаксис понятен, а объяснение непонятно. Ну то есть я понял, что это вот не должно работать и оно не работает
struct perestanovki { vector<int> v; };
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|||||||||||
16.12.2011, 00:10 | 4 | ||||||||||
посмотрите на файл, где у вас вектор определен. если у него два параметра, то попробуйте начать свой шаблон с такой строчкой:
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
16.12.2011, 00:57 [ТС] | 5 | |||||
Чудо свершилось
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
17.12.2011, 03:15 [ТС] | 6 | |||||
Но теперь не понять, почему не компилится это вот:
А здесь шаблона класса stack Видно, что если использую вектор, то надо писать allocator, что я и делаю, а если стек, то надо писать deque. Но во втором случае почему-то не компилится.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
17.12.2011, 04:24 | 7 |
kravam, Дек как бэ тоже с аллокатором.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|||||||||||
17.12.2011, 05:22 [ТС] | 8 | ||||||||||
У меня второй контейнер не очередь, а стек. Доля него первый параметр это int, второй сам stack, а третий берём отсюда:
template < class T, class Container = deque<T> > class stack; Так что всё верно, надо писать
0
|
Заблокирован
|
|||||||||||
17.12.2011, 08:03 | 9 | ||||||||||
как уже выше сказали deque не подходит
вот у тебя шаблоный параметр с одним аргументом: а в deque то их два! поэтому t_ deque заменить нельзя Добавлено через 8 минут
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
17.12.2011, 08:07 [ТС] | 10 |
Ну чё-то начал понимать, то есть получается, если параметр класса вектор или список, то можно изловчиться и написать шаблон класса с пустым конструктором, а вот если вектор или стек (или одинарная очередь), то шансов вообще нет?
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
17.12.2011, 11:28 [ТС] | 12 | |||||
Все мои доказательства. Как говорится, чем богаты тем и рады.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
17.12.2011, 15:10 | 13 |
Можно сделать во первых через специализации класса.
Во вторых через шаблоны с переменным числом аргументов.
0
|
17.12.2011, 15:10 | |
17.12.2011, 15:10 | |
Помогаю со студенческими работами здесь
13
Как использовать механизм сигналов и слотов в шаблонном классе? Как программно определить тип параметра реестра? Параметры в шаблонном классе String в шаблонном классе Итератор в шаблонном классе Ошибки в шаблонном классе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |