我们今天讲讲简单的stack实现,栈不是很简单,它的实现很简单,常规接口如下
数据存取:
push(elem);
//向栈顶添加元素
pop();
//从栈顶移除第一个元素
top();
//返回栈顶元素大小操作:
empty();
//判断堆栈是否为空
size();
//返回栈的大小
template<typename T>
class Stack
{
public:
void push(T elem) {
v.push_back(elem);
}
T pop() {
T temp = v[v.size() - 1];
v.pop_back();
return temp;
}
T& top() {
return v[v.size() - 1];
}
int size() {
return v.size();
}
bool empty() {
return v.empty();
}
private:
std::vector<T>v;
};
我们写的很简单,直接使用vector的接口,以向量来实现栈,这可以说是最简单的实现了,当然,大家也可以重载赋值运算符,提供swap方法,那就留给各位了