C ++ STL(6):キューコンテナ


1キューの基本概念

特長:キューがqueueある先入れ先出しFIFO含む、先入れ先出し)データ構造、2つの出口で、要素(入队)をに挿入しますチームのリーダー要素(出队)を削除します
キューコンテナ
行頭/行頭:、front()キューコンテナを使用すると、要素を行頭から削除できますキューの
終わり:、back()キューコンテナでは、キューの終わりから要素追加できます

注:キューでは、唯一のチームヘッド外の世界からアクセスして使用できるのでキューはトラバーサル動作を許可しません

チームに参加する:、チームpush()の最後に要素を追加します。
デキュー:、pop()チームのヘッド/チームのリーダーから要素を削除します。


2キュー共通インターフェース

注:キューコンテナを使用する場合は、ヘッダーファイルをインクルードする必要があります#include <queue>

コンストラクター
queue<T> que;:デフォルトの引数なしコンストラクタークラステンプレートによって実装されます。
queue(const queue &que);:コンストラクタをコピーし、既存のキューオブジェクトを使用して新しいオブジェクトを初期化します。

代入演算::
queue& operator=(const queue &que);代入演算子をオーバーロードし、ターゲットキューコンテナを使用して現在のキューコンテナに値を割り当てます。

データアクセス::
push(elem);チームの最後に要素を追加します。
pop();:チームのヘッドから要素を削除します。
front();:チームの最初の要素最初の要素)に戻ります。
back();:テール要素(最後の要素)に戻ります。

サイズ操作
empty();キューが空かどうかを判別します。
size();:キューのサイズ/長さを返します。

:キューの共通インターフェース

#include <iostream>
using namespace std;
#include <queue>

class Person {
    
    
public:
	string name;
	int level;

	Person(string name, int level) {
    
    
		this->name = name;
		this->level = level;
	}
};

int main() {
    
    
	//创建队列
	queue<Person> q;

	Person p1("唐僧", 30);
	Person p2("孙悟空", 99);
	Person p3("猪悟能", 60);
	Person p4("沙悟净", 50);

	//入队
	q.push(p1);
	q.push(p2);
	q.push(p3);
	q.push(p4);

	cout << "当前队列大小:" << q.size() << endl;	//4
	
	//循环出队
	while (!q.empty()) {
    
    
		cout << "当前队首元素:" << q.front().name << endl;
		cout << "当前队尾元素:" << q.back().name << endl;
		cout << "***********" << endl;
	
		//出队
		q.pop();
	}

	cout << "当前队列大小:" << q.size() << endl;	//0

	return 0;
}

おすすめ

転載: blog.csdn.net/newson92/article/details/113930794