std::deque
是一個(gè)雙端隊(duì)列,可以在其頭部和尾部高效地添加和刪除元素
#include<iostream>
#include <deque>
class Stack {
public:
// 向棧頂添加元素
void push(int value) {
deque.push_back(value);
}
// 從棧頂移除并返回元素
int pop() {
if (isEmpty()) {
std::cerr << "Stack is empty!"<< std::endl;
return -1;
}
int value = deque.back();
deque.pop_back();
return value;
}
// 返回棧頂元素
int top() {
if (isEmpty()) {
std::cerr << "Stack is empty!"<< std::endl;
return -1;
}
return deque.back();
}
// 判斷棧是否為空
bool isEmpty() {
return deque.empty();
}
private:
std::deque<int> deque;
};
int main() {
Stack stack;
stack.push(1);
stack.push(2);
stack.push(3);
std::cout << "Top element is: "<< stack.top()<< std::endl;
stack.pop();
std::cout << "Top element is now: "<< stack.top()<< std::endl;
return 0;
}
這個(gè)示例中,我們創(chuàng)建了一個(gè)名為 Stack
的類,它使用 std::deque
作為內(nèi)部數(shù)據(jù)結(jié)構(gòu)。我們實(shí)現(xiàn)了 push
, pop
, top
和 isEmpty
方法,以提供棧的基本功能。在 main
函數(shù)中,我們創(chuàng)建了一個(gè) Stack
對(duì)象,并向其添加了一些元素,然后展示了如何使用這些方法。