佇列是一種先進先出(fifo)的資料結構,即從尾部(隊尾)進入,從頭部進入
使用push()函式進隊,push()函式會將元素插入到隊尾
#include #include #include
using
namespace
std;
intmain
()
使用pop()函式出隊,pop()函式會將第乙個元素出隊
#include #include #include
using
namespace
std;
intmain
()
using namespace std;
int main()
# 優先佇列
優先佇列主要優先順序演算法有區別,出隊與一般的佇列是一樣的
## 定義
priority_queue,第乙個泛型是元素型別,第二個型別是,第三個型別是優先順序演算法
```c++
#include #include #include using namespace std;
int main()
return 0;
}
這是乙個公升序的佇列,也就是優先數大的會放在隊尾(我也不知道為什麼)
他的輸出是
6
1040
90100
如果元素是字串型別的話會按首字母排序
#include #include #include #include
using
namespace
std;
intmain
()return0;
}
輸出是
ab
bhdhe
huio
自定義優先順序主要是通過乙個仿函式(我也不大清楚)來實現
#include #include #include #include
using
namespace
std;
template
<
typename
t>
void
print_queue(t
&q)cout
<<
'\n';}
intmain())
q.push(n
);print_queue(q
);priority_queue
<
int,
std::
vector
<
int>
,std
::greater
<
int>
>q2;
for(
intn:)
q2.push(n
);print_queue(q2
);// using lambda to compare elements.
auto
cmp=
(int
left
,int
right);
priority_queue
<
int,
std::
vector
<
int>
,decltype
(cmp
)>q3(
cmp);
for(
intn:)
q3.push(n
);print_queue(q3
);}
??正文結束??
實驗三 鏈佇列(c )
1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。1 自己確定結點的具體資料型別和問題規模 建立乙個鏈佇列,實現佇列的入隊和出隊操作。includeusing namespace std const int maxsize 100 templ...
C 多執行緒程式設計學習三 FIFO佇列設計
在網路程式設計中,fifo佇列是經常使用到的乙個資料緩衝機制,同時這也是乙個生產者與消費者問題,在設計過程中要注意以下幾點。佇列大小設計要科學,對於服務的強度而言,有乙個最優化長度,要通過測試去發掘。資料競爭保護,通過設定條件互斥量,對涉及佇列的操作進行保護。事件通知策略,兩個執行緒,乙個讀,乙個寫...
c 學習筆記 佇列
標頭檔案 include 定義 queue typename name typename為任意資料型別,name為所定義佇列名常用函式 函式名返回值q.empty 判斷佇列是否為空 q.size 返回當前佇列元素個數 q.pop 刪除隊首元素 q.push x 向隊尾新增元素 q.front 返回隊...