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

стеки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Рисование квадрата функцией Gfx_RenderQuad http://www.cyberforum.ru/cpp-beginners/thread1058985.html
Вроде бы все обозначил расписал да все ровно не показывает квадрат не в какую помогите пож разобраться в чем ошибка потому как компилятор вообще их не видит /* ** Haaf's Game Engine 1.8 ** Copyright (C) 2003-2007, Relish Games ** hge.relishgames.com ** ** hge_tut01 - Minimal HGE application
C++ Удалить каждый второй элемент стека Заполнить стек значениями произвольно выбранного типа. Удалить каждый второй элемент стека. Есть стек,как удалять элементы? #include <stdio.h> #include <conio.h> #include <iostream.h> struct pointer { int d; http://www.cyberforum.ru/cpp-beginners/thread1058981.html
Класс для бинарного дерева C++
Здравствуйте! Помогите, пожалуйста, я не вижу ошибок и не понимаю, почему программа не видит меню, не работает так, как нужно( Общее задание было такое: "Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаления существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам. Написать программу, использующую этот...
C++ Обьясните как работает программа
Объясните как работает эта программа) 1. Дана стpока символов. Пpизнак конца стpоки - символ '\n' (пеpевод стpоки). Стpока состоит из слов, pазделенных пpобелами.) Вывести самое коpоткое слово и его длину #include <stdio.h> #include <conio.h> #define DLSTR 80 void main() { char str;
C++ Дана последовательность целых чисел, последнее из которых 0. Найти количество 3-значных чисел http://www.cyberforum.ru/cpp-beginners/thread1058963.html
Дана последовательность целых чисел, последнее из которых 0. Найти количество 3-значных чисел. cout << "Dano: " << endl; cin >> n; do { if (n>90 && n<1000) s++; } while(n==0);
C++ Напишите функцию пузырьковой сортировки Напишите функцию пузырьковой сортировки на с++. Функция на вход принимает ссылку на массив. Сортировка осуществляется в исходном массиве. подробнее

Показать сообщение отдельно
Usain
0 / 0 / 0
Регистрация: 20.11.2012
Сообщений: 33
27.12.2013, 21:33     стеки
Здравствуйте. Я создал шаблон класса стек.
Как мне перегрузить операторы -- и += для извлечение и добавление элемента в стек. И нужно обработать исключительные ситуации возникающие при добавление элементов в стек (т.е. когда стек полон)

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#ifndef STACK_H
#define STACK_H
*
#include <cassert> // для assert
#include <iostream>
*
#include <iomanip> // для setw
*
template <typename T>
class Stack
{
private:
****T *stackPtr;********************* // указатель на стек
****const int size;****************** // максимальное количество элементов в стеке
****int top;************************* // номер текущиго элемента стека
public:
****Stack(int = 10);***************** // по умолчанию размер стека равен 10 элементам
****Stack(const Stack<T> &);********* // конструктор копирования
****~Stack();************************ // деструктор
*
****inline void push(const T & );**** // поместить элемент в вершину стека
****inline T pop();****************** // удалить элемент из вершины стека и вернуть его
****inline void printStack();******** // вывод стека на экран
****inline const T &Peek(int ) const; // n-й элемент от вершины стека
****inline int getStackSize() const;* // получить размер стека
****inline T *getPtr() const;******** // получить указатель на стек
****inline int getTop() const;******* // получить номер текущего элемента в стеке
};
*
// реализация методов шаблона класса STack
*
// конструктор Стека
template <typename T>
Stack<T>::Stack(int maxSize) :
****size(maxSize) // инициализация константы
{
****stackPtr = new T[size]; // выделить память под стек
****top = 0; // инициализируем текущий элемент нулем;
}
*
// конструктор копирования
template <typename T>
Stack<T>::Stack(const Stack<T> & otherStack) :
****size(otherStack.getStackSize()) // инициализация константы
{
****stackPtr = new T[size]; // выделить память под новый стек
****top = otherStack.getTop();
*
****for(int ix = 0; ix < top; ix++)
********stackPtr[ix] = otherStack.getPtr()[ix];
}
*
// функция деструктора Стека
template <typename T>
Stack<T>::~Stack()
{
****delete [] stackPtr; // удаляем стек
}
*
// функция добавления элемента в стек
template <typename T>
inline void Stack<T>::push(const T &value)
{
****// проверяем размер стека
****assert(top < size); // номер текущего элемента должен быть меньше размера стека
*
****stackPtr[top++] = value; // помещаем элемент в стек
}
*
// функция удаления элемента из стека
template <typename T>
inline T Stack<T>::pop()
{
****// проверяем размер стека
****assert(top > 0); // номер текущего элемента должен быть больше 0
*
****stackPtr[--top]; // удаляем элемент из стека
}
*
// функция возвращает n-й элемент от вершины стека
template <class T>
inline const T &Stack<T>::Peek(int nom) const
{
**//
**assert(nom <= top);
*
**return stackPtr[top - nom]; // вернуть n-й элемент стека
}
*
// вывод стека на экран
template <typename T>
inline void Stack<T>::printStack()
{
****for (int ix = top - 1; ix >= 0; ix--)
********cout << "|" << setw(4) << stackPtr[ix] << endl;
}
*
// вернуть размер стека
template <typename T>
inline int Stack<T>::getStackSize() const
{
****return size;
}
*
// вернуть указатель на стек (для конструктора копирования)
template <typename T>
inline T *Stack<T>::getPtr() const
{
****return stackPtr;
}
*
// вернуть размер стека
template <typename T>
inline int Stack<T>::getTop() const
{
****return top;
}
#endif // STACK_H
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru