可以用vector实现栈吗
时间: 2024-05-15 13:13:30 浏览: 82
是的,可以使用vector实现栈。vector是动态数组,可以实现插入、删除和访问元素的常数时间复杂度。
以下是一个基于vector实现的简单栈示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
class Stack {
private:
vector<T> data;
public:
void push(T val) {
data.push_back(val);
}
void pop() {
if (!data.empty()) {
data.pop_back();
}
}
T top() {
if (!data.empty()) {
return data.back();
}
throw "stack is empty";
}
bool empty() {
return data.empty();
}
};
int main() {
Stack<int> s;
s.push(1);
s.push(2);
s.push(3);
while (!s.empty()) {
cout << s.top() << " ";
s.pop();
}
cout << endl;
return 0;
}
```
在这个示例中,我们使用vector实现了一个基本的栈数据结构。push()方法将元素添加到vector的尾部,pop()方法从vector的尾部删除元素,top()方法返回vector的尾部元素,empty()方法用于检查vector是否为空。
阅读全文