Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36

Шаблон вектор в шаблоне стека -.-

04.11.2013, 17:52. Показов 2553. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно создать объект шаблонного класса стек, содержащий объекты шаблонного класса вектор.
Вот класс стек:
C++
1
2
3
4
5
6
7
8
9
10
11
template <class T> class Stack {
private:
    class Node {
    public:
        T d;
        Node *pred;
        Node(T dan = 0) { d = dan; pred = 0; }      // (1)
    };
    Node* top;
        ...
};
На строке (1) выводит ошибку: невозможно преобразовать "int" в "Vect<T>. Как быть?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2013, 17:52
Ответы с готовыми решениями:

Шаблон стека изменить на шаблон очереди
Кто может пояснить как работает этот шаблон стека, так как мне нужно изменить его на очередь,а я не совсем понимаю его template &lt;class...

Шаблон в шаблоне
Доброго времени суток! Мне нужно написать вот такое задание: написать шаблонную функцию, которая получает на вход любой контейнер из...

Шаблоны, шаблон в шаблоне
Всем привет! Есть шаблон списка1 и есть шаблон списка2. При клике на какой-то элемент списка1 должны появляться определенные...

6
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
04.11.2013, 17:53
C++
1
Node(T dan = 0) { d = dan; pred = 0; }
вектору присваиваете int?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
04.11.2013, 18:01
Если я правильно понял задание, то это должно выглядеть примерно так:
C++
1
2
3
4
5
6
7
8
9
10
template <class T> class Stack {
private:
    class Node {
    public:
        std::vector <T> d;
        Node *pred;
        Node( std::vector <T> dan ) { d = dan; pred = 0; }
    };
    Node * top;
};
0
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
04.11.2013, 18:19  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
Node(T dan = 0) { d = dan; pred = 0; }
вектору присваиваете int?
Да, но я не хочу этого. Как мне тогда конструктор по умолчанию преобразовать?

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
Если я правильно понял задание, то это должно выглядеть примерно так:
C++
1
2
3
4
5
6
7
8
9
10
template <class T> class Stack {
private:
    class Node {
    public:
        std::vector <T> d;
        Node *pred;
        Node( std::vector <T> dan ) { d = dan; pred = 0; }
    };
    Node * top;
};
Стек тоже шаблонный и может хранить значения любого типа.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
04.11.2013, 18:20
Цитата Сообщение от Oberyn Martell Посмотреть сообщение
любого типа
Цитата Сообщение от Oberyn Martell Посмотреть сообщение
содержащий объекты шаблонного класса вектор
Где правда?
0
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
05.11.2013, 15:04  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Где правда?
Неправильно выразился. В maine мне нужно создать объекты класса стек, содержащие объекты класса вектор, числа, строки и т.п. С числами и строками работает нормально, но с векторами - нет.

Добавлено через 20 часов 33 минуты
Изменю вопрос: как мне переделать метод print класса Stack, чтобы он мог выводить на экран как простые значения, так и массивы значений?
C++
1
2
3
4
5
6
7
8
9
template <class T>
void Stack<T>::print() {
    while(top) {
        cout << top->d << " ";
        top = top->pred;
        cout << endl;
    }
    cout << endl;
}
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
05.11.2013, 15:27
Oberyn Martell, 1) Перегрузить оператор << для вектора (плохая идея, очень плохая, если мы говорим об std::vector конечно же).
2) Определить функции вида print_impl, который с помощью перегрузки/шаблонов будет правильно выводить.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template<typename T>
void print_elem(const T& value)
{
   cout << value << " ";
}
 
template<typename T>
void print_elem(const std::vector<T>& value)
{
   std::copy(value.begin(), value.end(), std::ostream_iterator<T>(std::cout, " "));
}
 
template <class T>
void Stack<T>::print() {
    while(top) {
        print_elem(top->d);
        top = top->pred;
        cout << endl;
    }
    cout << endl;
}
Если нужен не только вектор, а разные контейнеры - сделать шаблон с использованием SFINAE.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2013, 15:27
Помогаю со студенческими работами здесь

Как вывести tpl шаблон в шаблоне
Прошу помощи, прочитал статью http://rgblog.ru/page/template попробовал вывести шаблон, у меня все получилось, но не могу понять как...

Шаблон и clexcel...как сделать видимым/невидимым лист в шаблоне.
Всем привет! Я новичок в Fox Pro. Возможно мой вопрос покажется кому-то глупым, но я пока не пойму как правильно реализовать это. В общем у...

Шаблон стека и перегрузка передачи в поток
Нужно написать шаблон стека с перегрузкой &lt;&lt; и &gt;&gt; для ввода/вывода Внутри класса функция объявлена так: template&lt;class Type&gt; ...

Шаблон стека и перегрузка передачи в поток
Нужно написать шаблон стека с перегрузкой &lt;&lt; и &gt;&gt; для ввода/вывода Внутри класса функция объявлена так: template&lt;class Type&gt; ...

При установке шаблона Wordpress не видит файла стилей в загружаемом шаблоне и не устанавливает шаблон
Уважаемые специалисты, добрый день. Подскажите, пожалуйста, почему при установке шаблона Wordpress не видит файла стилей в загружаемом...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru