目錄
1, 什么是queue
2, 創建queue
2-1, 標準數據類型
2-2, 自定義數據類型
2-3, 其他創建方式
3, 操作stack
3-1, 賦值
3-2, 插入元素(push)
3-3, 查詢元素
3-4, 刪除元素
3-5, 判斷是否為空
3-6, 交換
3-7, 獲取長度
1, 什么是queue
C++中的容器數據類型, 叫著隊列容器, 元素是先進先出, 不支持遍歷
2, 創建queue
通過queue<數據類型> 對象名, 可創建queue, 數據類型可以是標準數據類型, 也可以是自定義類型
2-1, 標準數據類型
//queue中元素數據類型為string
queue<string> q1;
2-2, 自定義數據類型
//queue中元素的數據類型為Myclass
queue<Myclass> q1;
2-3, 其他創建方式
queue<Myclass> q1;
//通過拷貝構造方式, 將一個已存在的q1, 拷貝給q2
queue<Myclass> q2(q1);
3, 操作stack
3-1, 賦值
由于queue是一個容器, 只支持將一個queue賦值給另外一個queue
queue<Myclass> q2 = q1;
3-2, 插入元素(push)
通過對象名.push(元素), 向queue中插入元素
Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
queue<Myclass> q1;
q1.push(m1);
q1.push(m2);
q1.push(m3);
3-3, 查詢元素
通過對象名.front(), 獲取頭部元素, 通過對象名.back(), 獲取尾部元素
Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
queue<Myclass> q1;
queue<Myclass> q2;
q1.push(m1);
q1.push(m2);
q1.push(m3);
cout << q1.front().m_name << endl;
cout << q1.back().m_name << endl;
3-4, 刪除元素
通過對象名.pop(), 刪除頭部元素
q1.pop();
3-5, 判斷是否為空
可通過對象名.empty(), 判斷隊列是否為空, 為空返回0, 不為空返回1
cout << q1.empty() << endl;
3-6, 交換
可通過對象名1.swap(對象名2), 交換兩個棧的元素
q1.swap(q2);
3-7, 獲取長度
可通過q1.size(), 刪除棧頂元素
cout << q1.size() << endl;