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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dark Byte
-17 / 46 / 12
Регистрация: 23.10.2014
Сообщений: 1,001
Завершенные тесты: 2
#1

Не типизированный стек - C++

26.11.2014, 09:07. Просмотров 187. Ответов 5
Метки нет (Все метки)

еще один эксперимент в духе хз зачем написал и где это может пригодится
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Stack
{
private:
    struct Node
    {
        Node* prev = nullptr;
        unsigned char* data = nullptr;
    } *last = nullptr;
 
public:
    Stack() {}
 
    ~Stack()
    {
        while (last) pop();
    }
 
    template<typename T>
    void push(const T &data)
    {
        static_assert(!std::is_pointer<T>::value, "Type should not be a pointer");
        Node* tmp = new Node;
        tmp->prev = last;
        T* ptr = new T;
        *ptr = data;
        tmp->data = (unsigned char*) ptr;
        last = tmp;
    }
 
    void pop()
    {
        if (!last) return;
        delete last->data;
        Node* tmp = last->prev;
        delete last;
        last = tmp;
    }
 
    template<typename T>
    const T& peek() const
    {
        if (!last) throw("Stack is empty");
        return *((T*) last->data);
    }
};
Добавлено через 6 минут
з.ы. только надо четко указывать при вызове Peek какой тип хочешь получить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 09:07     Не типизированный стек
Посмотрите здесь:

как в с++ создается типизированный файл? и как вообще понять типизированный? - C++
вопрос в теме

не типизированный файл - C++
Дан текстовый файл f. Переписать в файл g все компоненты файла f с заменой в них символа 0 на 1 и наоборот. также решить в терминах...

Типизированный файл - C++
С чего начать и что почитать?

Сформировать типизированный файл - C++
Сформировать типизированный файл, в котором хранится информация о сотрудниках подразделения: ФИО, место рождения, год рождения. На его...

Создание и запись в типизированный файл - C++
Есть 7 окон Edit (ФИО, отдел, должность, эл. почта и т.д.), нужно содержимое этих окон записать в файл, и есть ComboBox, который должен по...

Бинарное дерево в типизированный файл - C++
Задача над которой бьюсь уже третий день. 1. Сделать базу данных клиентов банка на основе бинарного дерева дерева Сделать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,013
26.11.2014, 09:07     Не типизированный стек #2
Цитата Сообщение от Dark Byte Посмотреть сообщение
Не типизированный
Цитата Сообщение от Dark Byte Посмотреть сообщение
unsigned char* data
Цитата Сообщение от Dark Byte Посмотреть сообщение
static_assert(!std::is_pointer<T>::value, "Type should not be a pointer");
Серьезно?
Dark Byte
-17 / 46 / 12
Регистрация: 23.10.2014
Сообщений: 1,001
Завершенные тесты: 2
26.11.2014, 09:10  [ТС]     Не типизированный стек #3
Цитата Сообщение от 0x10 Посмотреть сообщение
Серьезно?
а что? ну имелось ввиду что добавлять можно значения любых типов
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,013
26.11.2014, 09:19     Не типизированный стек #4
Цитата Сообщение от Dark Byte Посмотреть сообщение
а что?
См стандартный std::vector.
Dark Byte
-17 / 46 / 12
Регистрация: 23.10.2014
Сообщений: 1,001
Завершенные тесты: 2
26.11.2014, 09:26  [ТС]     Не типизированный стек #5
Цитата Сообщение от 0x10 Посмотреть сообщение
См стандартный std::vector.
вектор не умеет добавлять значения всех типов, только одного выбранного при объявлении...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2014, 09:35     Не типизированный стек
Еще ссылки по теме:

что такое типизированный файл? - C++
что это такое? и как с ним работать? Добавлено через 24 минуты хелп народ... Добавлено через 52 минуты неужели никто не знает?

Типизированный файл. Сведения о студентах. Стипендия - C++
Привет) у меня такая задача на туже тему, помогите исправить Вот условие Сформировать типизированный файл, в котором хранятся...

Создания однонаправленного списка и сохранения в типизированный файл. - C++
Доброе время суток. Прошу помощь в решении задачи. Я совсем запутался с однонаправленным списком. И вторая проблема состоит в том что не...

Сохранение матриц больших размеров в типизированный файл - C++
Проблема: есть большой двумерный массив (double). Пытаюсь сохранить его в типизированный файл (а затем считать в другой массив). В файл...

Разработать программу реализующую чтение и запись в типизированный файл - C++
Здраствуйте . Начал писать и в самом начале возникла проблема. Написана только одна функция . Нужно записать структуру в типизированный...

Записать все числа массива в типизированный файл в том же порядке - C++
Дан массив из двадцати вещественных чисел. Записать все числа массива в типизированный файл в том же порядке.


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

Или воспользуйтесь поиском по форуму:
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,013
26.11.2014, 09:35     Не типизированный стек #6
Цитата Сообщение от Dark Byte Посмотреть сообщение
вектор не умеет добавлять значения всех типов, только одного
Повод задуматься: а нужен ли контейнер, хранящий никак не связанные между собой типы?
Если все-таки да, то обертка - это уже другая часть функционала. См boost::any.
Yandex
Объявления
26.11.2014, 09:35     Не типизированный стек
Ответ Создать тему
Опции темы

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