Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как реализовать работу со списком строк и списком цифр в классе List? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс целых чисел http://www.cyberforum.ru/cpp-beginners/thread162874.html
Ребят помогите плиз с таким вот делом: нужно сделать класс для списка целых чисел. Что бы можно было добавить в начало число, добавить в конец, узнать сколько там элементов, получить n-ый элемент,...
C++ Паркет есть паркет (см. рисунок) даны кординати нижней левой и правой верхней точки (в даном случае 4 4 и 12 10) закрашеной области. нужно определить сколько внутри этой области прямоугольников 1х1, 1х2,... http://www.cyberforum.ru/cpp-beginners/thread162869.html
Link error на inline функцию C++
Почему выдает ошибку undefined reference to `OldCat::GetAge() const' на inline ф-цию при ее вызове? Убираю inline, все компилится нормально. Функция простая: inline int OldCat::GetAge() const...
C++ Какая должна быть структура сложного (объемного) проекта?
Работа программы начинается с выполнения функции main(). В самой программе куча функций и классов. Как организовать структуру достаточно сложного проекта (программы), чтобы не "утонуть" в ней?...
C++ #include <list> - конфликт using namespace std с другими инклюдами http://www.cyberforum.ru/cpp-beginners/thread162802.html
Всем привет. Появилась надобность использовать списки, однако #include <list> подключается только вместе с using namespace std. Мои инклюды #pragma once #include "network.h" #include <d3dx9.h>...
C++ WMI и Dev-C++ Мне нужно узнать объем видеопамяти на эту тему на гуглил что нужно использовать Win32_VideoConfiguration Class, но компилятор ругается на кучу ошибок даже на этом примере... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
01.09.2010, 16:22
Вот тебе еще пример, чтобы было легче разобраться - шаблонный стек:
my_stack.hpp
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef MY_STACK_HPP
#define MY_STACK_HPP
 
#include <stdexcept>
 
namespace my
{
    template<class T>
    class stack
    {
        struct node
        {
            T       value;
            node*   next;
 
            node(const T& val)
                : value(val), next(NULL) {}
        };
        node*       top;
 
    public:
 
        stack();
        ~stack();
        void push(const T& val);
        T pop();
        bool empty() const;
    };
 
    template<class T>
    stack<T>::stack()
        : top(NULL) {}
 
    template<class T>
    stack<T>::~stack()
    {
        while(top)
        {
            node* temp = top;
            top = top->next;
            delete temp;
        }
    }
 
    template<class T>
    void stack<T>::push(const T &val)
    {
        if(top)
        {
            node* newNode = new node(val);
            newNode->next = top;
            top = newNode;
        }
        else
            top = new node(val);
    }
 
    template<class T>
    T stack<T>::pop()
    {
        if(!top)
            throw(std::runtime_error("Can't pop from the empty stack"));
        T retVal = top->value;
        node* delNode = top;
        top = top->next;
        delete delNode;
        return retVal;
    }
 
    template<class T>
    bool stack<T>::empty() const
    {
        return (top == NULL);
    }
}
 
#endif // MY_STACK_HPP
main.cpp
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
#include <iostream>
#include <cstdlib>
 
#include "my_stack.hpp"
 
int main()
{
    try
    {
        my::stack<int> stk;
        std::cout << "Pushing to the stack..." << std::endl;
        for(size_t i= 0; i < 10; ++i, std::cout << i << " ")
            stk.push(i + 1);
        std::cout << std::endl << "Popping from the stack..." << std::endl;
        while(!stk.empty())
            std::cout << stk.pop() << " ";
        std::cout << std::endl;
    }
    catch(std::exception& e)
    {
        std::cerr << e.what() << std::endl;
        return EXIT_FAILURE;
    }
 
    return EXIT_SUCCESS;
}
Цитата Сообщение от hatter Посмотреть сообщение
Передо мной их 2 лежит - читал! Поверь, я не стал бы обращаться, если бы смог разобраться самостоятельно.
Значит, либо книги плохие, либо плохо читал. А какие, собственно, сложности возникли при самостоятельном изучении?

Цитата Сообщение от hatter Посмотреть сообщение
Конкретно для моего класса и с такой функцией списков строк и цифр.
Твой список хранит тип int в поле value. Тебе нужно для value заменить тип int на шаблонный параметр.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru