1、キューの基本的な概念
概念:キューは FIFO二つの出口有する(先入れ先出し、FIFO)データ構造、
容器からのキュー要素を新たな終了を可能にする、要素の他端がから除去されます
キュー唯一のチームヘッドとテールキュートラバーサルの動作を許可していませんので、外を使用することができ、
キューが参照されるデータに- エンキュー push
キューのデータが呼び出されます- チーム pop
2、キューの共通インタフェース
コンストラクタ:
queue<T> que;
//キューは、テンプレートクラスを使用して、その実装デフォルトコンストラクタフォームキューオブジェクトqueue(const queue &que);
//コピーコンストラクタ
割り当て:
queue& operator=(const queue &que);
//等価演算子のオーバーロード
データアクセス:
push(elem);
//末尾に要素を追加pop();
//チームのヘッドからの最初の要素を削除しますback();
//最後の要素を返します。front();
//最初の要素を返します。
操作のサイズ:
empty();
//スタックが空であるかどうかを判断しますsize();
//スタックサイズを返します。
#include <queue>
#include <string>
class Person
{
public:
Person(string name, int age)
{
this->m_Name = name;
this->m_Age = age;
}
string m_Name;
int m_Age;
};
void test01() {
//创建队列
queue<Person> q;
//准备数据
Person p1("唐僧", 30);
Person p2("孙悟空", 1000);
Person p3("猪八戒", 900);
Person p4("沙僧", 800);
//向队列中添加元素 入队操作
q.push(p1);
q.push(p2);
q.push(p3);
q.push(p4);
//队列不提供迭代器,更不支持随机访问
while (!q.empty()) {
//输出队头元素
cout << "队头元素-- 姓名: " << q.front().m_Name
<< " 年龄: "<< q.front().m_Age << endl;
cout << "队尾元素-- 姓名: " << q.back().m_Name
<< " 年龄: " << q.back().m_Age << endl;
cout << endl;
//弹出队头元素
q.pop();
}
cout << "队列大小为:" << q.size() << endl;
}
int main() {
test01();
system("pause");
return 0;
}
要約:
- プッシュ - チームへ
- チーム - ポップ
- ヘッド素子を返す - フロント
- バック - 尾の要素を返します。
- チームが空であるかどうかを確認 - 空
- 戻り値キューサイズ - サイズ