У меня проблема с функцией push.Переменная внутри нижнего индекса массива (top) инициализируется значением r (item).
Когда я выполняю ту же операцию с top = 0, она работает нормально.
Проблема возникает, только когда top = -1.
Во втором и третьем вызове функции значение top увеличивается последовательно и не инициализируется значением r(предмет)
Я напечатал верхнее значение каждый раз, чтобы облегчить отладку.
class stack
{
int top;
public:
int arr[500];
stack()
{
top=-1;
}
void push(int);
};
void stack::push(int item)
{
arr[top++]=item;
cout<<"\n"<<item<<"pushed in stack";
cout<<"\n top value is"<<top;
}
int main()
{
stack s;
s.push(12);
s.push(19);
s.push(31);
return 0;
}
Я ожидал, что результат будет "12помещено в стек, а верхнее значение = 0, но фактический результат равен 12 помещается в стек, а верхнее значение равно 12
.