所以,我想与建立成功,但运行失败的堆栈
int x = 5;
mystack<int> st;
st.push(x);
运行下面的类不过,我不断收到建立失败,我似乎无法找出原因。
#ifndef MYSTACK_H
#define MYSTACK_H
#include <vector>
using namespace std;
template<typename T>
class mystack {
private:
vector<T> data;
int size = 0;
public:
void push(T const &);
};
template<typename T>
void mystack<T>::push(T const & elem) {
data[size] = elem;
size++;
}
运行失败(退出值-1,073,741,819,总时间:1秒)
而且完全独立的问题,我怎么扔下溢?我试过
throw underflow_error();
您的标题与您的问题主体不符。您的问题主体缺少相关的错误消息(请逐字逐句)。 – Mat
标题说“构建成功”,问题表示“构建失败”。这是什么,错误状态到底是什么? – crashmstr
您想添加'data.resize(size + 1);'作为'push'的第一行。运算符'[]'没有边界检查 –