C++ stack容器

スタックは、スタックコンテナであるコンテナの「最後の外」です。
図:
ここに画像を挿入説明
最後の後だけなので、表面には、車の中、次々にだけ出てくることができ、車から出てきました!

ベーススタック両端キュー実現コンテナコンテナを。

使用すると、ヘッダファイルが含まれている必要があります#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コンテナは、他のリンクを学びます:

  1. C ++ PRIORITY_QUEUEプライオリティキュー・コンテナ

  2. C ++キューキューコンテナ

  3. C ++マップおよびマルチマップのコンテナ

  4. C ++セットとマルチセットコンテナ

  5. C ++リストコンテナ

  6. C ++両端キューコンテナ

  7. C ++のベクトルコンテナ

公開された47元の記事 ウォン称賛37 ビュー10000 +

おすすめ

転載: blog.csdn.net/cpp_learner/article/details/104857145