我正在尝试使用向量实现堆栈,并且在代码中遇到了奇怪的错误。 它也不会让我打印其他任何东西。如果我在其后添加另一个cout语句,则命令提示符窗口将打开,但不会显示任何错误。我不确定我的代码有什么问题。
Main.cpp
#include <iostream>
#include <string>
#include <cstring>
#include <cctype>
#include <vector>
#include "Stack.h"
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main(){
Stack a;
a.push(2);
a.push(100);
a.printStack();
}
stack.h的头文件
#ifndef STACK_H
#define STACK_H
#include <vector>
using std::vector;
class Stack
{
vector<int> myStack;
int top = 0;
public:
void push(int x);
int pop();
bool isEmpty();
int length();
void printStack();
};
#endif // STACK_H
用于功能实现的Stack.cpp文件
#include "Stack.h"
#include <vector>
#include <iostream>
using std::cout;
using std::endl;
using std::vector;
void Stack::push(int x){
myStack[top] = x;
top++;
}
int Stack::pop(){
int r = myStack[top];
myStack[top] = 0;
top--;
return r;
}
bool Stack::isEmpty(){
return top== 0;
}
int Stack::length(){
return top;
}
void Stack::printStack(){
for(int x : myStack)
cout << x << endl;
}