STL庫中的queue使用注意事項

2021-10-05 02:29:31 字數 974 閱讀 1352

//當使用stl的queue時,元素入隊的push操作只是製造了該元素的乙個副本入隊

//因此在入隊後對原元素的修改不會影響佇列中的副本

//而佇列中副本的修改也不會改變原元素,需要注意由此可能引入的bug(一般由結構體產生)

//所以是啥bug???

//#include

//#include

//using namespace std;

////struct nodea[10];

//int main()

// //直接把隊首元素(即a[1])的資料域改為100

// q.front().data = 100;

// //事實上對佇列元素的修改無法改變原元素

// printf("%d %d %d\n",a[1].data,a[2].data,a[3].data);

// //然後直接修改a[1]的資料域為200

// a[1].data = 200;

// //事實上對原元素的修改也無法改變佇列中的元素

// printf("%d\n",q.front().data);

// return 0;

//}//這就是說,當需要對佇列中的元素進行修改而不僅僅是訪問時,

//佇列中存放的元素最好不要是元素本身,而是它們的編號

#include

#include

using

namespace std;

struct nodea[10]

;int

main()

a[q.

front()

].data =

100;

為下標,通過a[q.front()]即可修改原元素

printf

("%d"

,a[1

].data)

;return0;

}

STL中queue的使用

基本操作 empty 如果隊列為空返回真 pop 刪除對頂元素 push 加入乙個元素 size 返回優先佇列中擁有的元素個數 top 返回優先佇列對頂元素 在預設的優先佇列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。使用方法 標頭檔案 include 宣告方式 1 普通方法 pr...

STL庫之queue佇列使用

佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為...

STL 中佇列的使用 queue

基本操作 push x 將x壓入佇列的末端 pop 彈出佇列的第乙個元素 隊頂元素 注意此函式並不返回任何值 front 返回第乙個元素 隊頂元素 back 返回最後被壓入的元素 隊尾元素 empty 當隊列為空時,返回true size 返回佇列的長度 使用方法 標頭檔案 include 宣告方法...