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

Создание стека по примеру из учебника Лафоре. Что означает top = -1? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить количество комбинаций разноцветных полосок, расположенных по определенной схеме http://www.cyberforum.ru/cpp-beginners/thread1223294.html
Задание:В День флага России владелец магазина решил украсить свою витрину полосками ткани белого, синего и красного цветов. Он хочет, чтобы выполнялись следующие условия: Полоски одного цвета не должны располагаться рядом друг с другом. Синяя полоска может быть расположена только между белой и красной или между красной и белой. Определите количество способов выполнить желание владельца...
C++ Член класса управляемый не может относиться к типу класса не управляемый "член класса управляемый не может относиться к типу класса не управляемый" Не могу понять что делать с этой ошибкой и как исправить http://www.cyberforum.ru/cpp-beginners/thread1223284.html
C++ Как расшифровывается библиотека cstdlib?
...
Что применить "\n" или "endl"? C++
Эти две операции похожи - они переходят на новую строку. Но endl очищает буфер, но при этом дольше выполняется. Так что же лучше применять?
C++ Позиционирование в потоке, переставить все нулевые элементы в начало файла http://www.cyberforum.ru/cpp-beginners/thread1223248.html
создать функцию, которая с использованием функций позиционирования в потоке переставляет все нулевые элементы в начало файла содержащего файла, переданного ей???????????
C++ Как считается угол альфа #include<iostream> #include<cmath> using namespace std; int main() { setlocale(0,""); double alpha,V,L,k; const double g=9.8; cout<<"Введите угол:\n"; cin>>alpha; подробнее

Показать сообщение отдельно
Пацан_
2 / 2 / 1
Регистрация: 22.05.2013
Сообщений: 39
06.07.2014, 13:51     Создание стека по примеру из учебника Лафоре. Что означает top = -1?
Здравствуйте, помоги разобраться. Это пример из учебника Лафоре ООП С++. Не могу понять почему когда в конструкторе Stack() {top = -1} все работает нормально, а когда top = 0, то работает не корректно. Конкретно интересует что означает top = -1, это что индекс массива который начинается со значения которое меньше 0 и как оно связано с количеством элементов в массиве MAX = 4, ведь по сути начало массива не меняет количество его элементов?

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
// stakaray.cpp
// a stack as a class
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////
class Stack
   {
   private:
      enum { MAX = 4 };      //(non-standard syntax)
      int st[MAX];               //stack: array of integers
      int top;                     //number of top of stack
   public:
      Stack()                     //constructor
         { top = -1; }
      void push(int var)        //put number on stack
         { st[++top] = var; }
      int pop()                    //take number off stack
         { return st[top--]; }
   };
int main()
   {
   Stack s1;
 
   s1.push(11);
   s1.push(22);
   s1.push(33);
   s1.push(44);
   cout << "1: " << s1.pop() << endl;  
   cout << "2: " << s1.pop() << endl;  
   cout << "3: " << s1.pop() << endl;  
   cout << "4: " << s1.pop() << endl;  
   return 0;
   }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru