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

Инстанцирование шаблона - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
kodermax
Сообщений: n/a
03.05.2011, 23:45     Инстанцирование шаблона #1
Есть шаблонная очередь с использованием vector
Как инстанцировать для своего класса, представляющего строку, изготовленную из vector<char>?
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
26
27
28
29
template <class T> class mydeque {
protected:
       vector<T> first; //первый вектор - используется для вставки в начало очереди
       vector<T> second; //второй вектор - используется для вставки в конец очереди
public:
       mydeque()
       {
       };
       ~mydeque()
       {
       };
   void shift(const T& val)  // функция добавления элемента в начало очереди
   {
       first.push_back(val);
   }
   void push(const T& val)  //функция добавления элемента в конец очереди
   {
       second.push_back(val);
   }
   void print() 
   {
       vector<T>::iterator cur;
       for (cur=first.begin();cur<first.end();cur++)
       cout<<*cur;
       for (cur=second.begin();cur<second.end();cur++)
       cout<<*cur;
   }
private:
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2011, 23:45     Инстанцирование шаблона
Посмотрите здесь:

Наследование шаблона C++
C++ Инстанцирование шаблона
C++ Инстанцирование шаблонного класса
Инстанцирование шаблона для различных типов C++
C++ специализация шаблона
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
04.05.2011, 01:13     Инстанцирование шаблона #2
Очередь, это контейнер, в котором элементы добавляются в конце, а удаляются спереди. Как в любой реальной очереди.
Поэтому вектор должен быть один.
А операции должны быть такие:
1. Добавить элемент в очередь (в конец) - это v.push_back()
2. Удалить элемент из очереди (первый) - это v.erase(v.begin())
3. Проверить, не пуста ли очередь - это v.empty()
Ну, еще можно доступ к первому и последнему элементу для замены значений сделать.
И для отладки - вывод всего контейнера.

Это исправь, потом про инстанцирование поговорим.
kodermax
Сообщений: n/a
04.05.2011, 07:19     Инстанцирование шаблона #3
Я понимаю что один.
А в задании требуют два.
Создать шаблонную очередь с использованием STL контейнера vector. Из двух векторов сделать одну очередь, так, что вставка в начало очереди – это вставка в конец первого вектора, а вставка в конец очереди – вставка в конец второго вектора. Определить в нем свои функции вставки в начало и в конец.
Veyron
 Аватар для Veyron
104 / 104 / 4
Регистрация: 02.06.2009
Сообщений: 579
04.05.2011, 08:17     Инстанцирование шаблона #4
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Очередь, это контейнер, в котором элементы добавляются в конце, а удаляются спереди. Как в любой реальной очереди.
Цитата Сообщение от kodermax Посмотреть сообщение
Создать шаблонную очередь с использованием STL контейнера vector. Из двух векторов сделать одну очередь, так, что вставка в начало очереди – это вставка в конец первого вектора, а вставка в конец очереди – вставка в конец второго вектора.
По ходу требуют не совсем очередь, а дек.
Yandex
Объявления
04.05.2011, 08:17     Инстанцирование шаблона
Ответ Создать тему
Опции темы

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