Хорошо, вот моя проблема: я новичок в стеках C ++ и пытаюсь переместить верхний элемент из одного стека в другой. Вот что я придумал:
#include <iostream>
#include <stack>
using namespace std;
void firstRow(stack <int> a,int X){
for(int i=1;i<=X;i++){
a.push(i);
}
cout<<"Row 1: ";
for(int i=1;i<=X;i++){
cout<<a.top()<<" ";
a.pop();
}
}
void firstTosecond(stack <int> a,stack <int> b,int X){
int k;
k=a.top();
b.push(k);
cout<<"Row 2: ";
while(!b.empty()){
cout<<b.top()<<" ";
b.pop();
}
}
int main() {
int X;
stack <int> a;
stack <int> b;
cout<<"Enter a number:";
cin>>X;
firstRow(a,X);
firstTosecond(a,b,X);
return 0;
}
Но, когда он пытается запустить функцию firstTosecond, он делает дамп ядра. Я до сих пор не понял, почему. Может быть, я недостаточно исследовал стеки или просто не знаю этого предмета, но я застрял в этой части довольно долго.
Если кто-то может мне помочь или дать какие-либо советы по поводу того, что я делаю неправильно, мы будем очень признательны:).