スタックは、スタックコンテナであるコンテナの「最後の外」です。
図:
最後の後だけなので、表面には、車の中、次々にだけ出てくることができ、車から出てきました!
ベーススタック両端キュー実現コンテナコンテナを。
使用すると、ヘッダファイルが含まれている必要があります#include <stack>
定義
stack<int> s1; // 默认使用deque存储元素
//stack<int, deque<int>> s1;
// 可以自行修改为其他容器存储元素
stack<int, vector<int>> ss1;
stack<int, list<int>> ss2;
stack<double> s2;
stack<char> s3;
stack<int> s4(s1); // 拷贝构造
s1 = s4; // 赋值重载
//プッシュ要素
s1.push(1)。
スタックの//要素
s1.pop();
//スタックの最後の要素を返します。
s1.top();
参照が返され、それは、それが直接割り当てることができているので:s1.top()= 10; //に変更してもよいです
//コンテナが空であるかどうかを判断します
s1.empty();
//スタック内の要素の数を取得します。
s1.size();
//スイッチング素子スタック
s1.swap(S4)。
注意:スタックコンテナにはありませんイテレータをあなたが唯一の方法については、コンテナ内部の出力値をしたいのであれば、:
while (!s1.empty()) { // 如果不为空则继续执行
cout << s1.top() << " "; // 输出最后一个入栈的值
s1.pop(); // 最后一个元素出栈
}
cout << endl;
テストコード:
#include <iostream>
#include <Windows.h>
#include <stack>
#include <vector>
#include <list>
using namespace std;
int main(void) {
stack<int> s1; // 默认使用deque存储元素
//stack<int, deque<int>> s1;
stack<int, vector<int>> ss1;
stack<int, list<int>> ss2;
stack<double> s2;
stack<char> s3;
stack<int> s4(s1); // 拷贝构造
s1 = s4; // 赋值重载
// 元素入栈
s1.push(1);
s1.push(3);
s1.push(5);
// 元素出栈
s1.pop();
// 返回最后一个入栈的元素
s1.top(); // s1.top() = 10; // 可以进行修改
// 判断栈是否为空
if (!s1.empty()) {
// 获取栈里面的元素个数
cout << s1.size() << endl;
}
// 交换栈中的元素
s1.swap(s4);
while (!s1.empty()) { // 如果不为空则继续执行
cout << s1.top() << " "; // 输出最后一个入栈的值
s1.pop(); // 最后一个元素出栈
}
cout << endl;
system("pause");
return 0;
}
STLコンテナは、他のリンクを学びます: