Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2010, 19:45   #1
SOKOLDANGER
 
Регистрация: 21.05.2010
Сообщений: 8
По умолчанию Стек

Подскажите, пожалуйста, как в С++ создать стек и сделать банальный ввод вывод элементов.
SOKOLDANGER вне форума Ответить с цитированием
Старый 02.10.2010, 19:50   #2
coinkrsk
пыжашийся нуб
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 93
По умолчанию

http://msdn.microsoft.com/ru-ru/library/bb157681.aspx
coinkrsk вне форума Ответить с цитированием
Старый 02.10.2010, 19:55   #3
SOKOLDANGER
 
Регистрация: 21.05.2010
Сообщений: 8
По умолчанию

Спасибо, coinkrsk. Так все понятно только я не мега программист. Может ты подскажешь что означает вот эта строчка:
template<typename Value,typename Container>
SOKOLDANGER вне форума Ответить с цитированием
Старый 02.10.2010, 20:17   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

http://www.google.ru/search?hl=ru&ne...=&oq=&gs_rfai=
p51x вне форума Ответить с цитированием
Старый 02.10.2010, 21:33   #5
sergey.d
Пользователь
 
Регистрация: 23.08.2010
Сообщений: 98
По умолчанию

Цитата:
Сообщение от SOKOLDANGER Посмотреть сообщение
Подскажите, пожалуйста, как в С++ создать стек и сделать банальный ввод вывод элементов.
Вот простенькая реализация:

Код:
#include <iostream>
#include <assert.h>

namespace sample
{
    template<typename T>
    class Stack
    {
        class Item
        {
        private:
            Item(const T &v, Item *n) :_value(v), _next(n) { }
            T _value;
            Item *_next;

            friend class Stack;
        };
    public:
        Stack() :_top(0) { }
        ~Stack() { clear(); }

        void clear() { while(!empty()) drop(); }
        bool empty() const { return !_top; }

        void push(const T &val) { _top = new Item(val, _top); }
        const T &top() const { assert(_top); return _top->_value; }
        void drop() { assert(_top); Item *i = _top; _top = _top->_next; delete i; }

    private:
        Item *_top;
    };
}

int main(int, char *[])
{
    sample::Stack<int> s;
    s.push(100);
    s.push(200);
    s.push(300);

    while(!s.empty())
    {
        std::cout << s.top() << std::endl;
        s.drop();
    }

    return 0;
}
sergey.d вне форума Ответить с цитированием
Старый 03.10.2010, 00:00   #6
sergey.d
Пользователь
 
Регистрация: 23.08.2010
Сообщений: 98
По умолчанию

Цитата:
Сообщение от SOKOLDANGER Посмотреть сообщение
Спасибо, coinkrsk. Так все понятно только я не мега программист. Может ты подскажешь что означает вот эта строчка:
template<typename Value,typename Container>
http://ru.wikipedia.org/wiki/Шаблоны_C%2B%2B
sergey.d вне форума Ответить с цитированием
Старый 03.10.2010, 18:59   #7
SOKOLDANGER
 
Регистрация: 21.05.2010
Сообщений: 8
По умолчанию

Спасибо всем, а в частности p51x, sergey.d. Очень помогло.
SOKOLDANGER вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
стек spider844360 Паскаль, Turbo Pascal, PascalABC.NET 1 19.09.2010 16:58
Стек? VintProg Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 19.07.2010 13:46
стек. Nelson1992 Фриланс 2 16.02.2010 00:28
C++ и стек MaGWaY_minsk Помощь студентам 1 11.11.2009 01:08