C++のスタックの実装方法は何ですか?
C++では、std::stackテンプレートクラスを使用してスタックを実装することができます。std::stackクラスは、他のシーケンスコンテナ(std::vector、std::deque、std::listなど)に基づいてスタックの機能を提供するコンテナアダプターです。
std::stackを使用してスタックを実装する例示コードが以下にあります:
#include <iostream>
#include <stack>
int main() {
std::stack<int> myStack;
// 将元素压入栈
myStack.push(1);
myStack.push(2);
myStack.push(3);
// 访问栈顶元素
std::cout << "栈顶元素:" << myStack.top() << std::endl;
// 弹出栈顶元素
myStack.pop();
std::cout << "弹出栈顶元素后的栈顶元素:" << myStack.top() << std::endl;
// 检查栈是否为空
if (myStack.empty()) {
std::cout << "栈为空" << std::endl;
} else {
std::cout << "栈不为空" << std::endl;
}
// 获取栈的大小
std::cout << "栈的大小:" << myStack.size() << std::endl;
return 0;
}
上記の例では、std::stack myStack; は整数のスタックを作成します。myStack.push(1); は要素1をスタックにプッシュします。myStack.top() はスタックのトップ要素を返します。myStack.pop() はスタックのトップ要素をポップします。myStack.empty() はスタックが空かどうかを確認します。myStack.size() はスタックのサイズを取得します。