日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C++ Primer | 09】容器适配器

發布時間:2023/11/30 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C++ Primer | 09】容器适配器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、stack

s.push(): 向棧內壓入一個成員; s.pop(): 從棧頂彈出一個成員; s.empty(): 如果棧為空返回true,否則返回false; s.top(): 返回棧頂,但不刪除成員; s.size(): 返回棧內元素的大小;

?

二、queue?

s.back() 返回隊尾元素 s.empty() 如果隊列空則返回真 s.front() 返回隊首元素 s.pop() 刪除隊首元素 s.push() 在隊尾加入一個元素 s.size() 返回隊列中元素的個數 s.emplace(args) 由args構造

?

三、priority_queue

q.empty() 如果隊列為空,則返回true,否則返回false q.size() 返回隊列中元素的個數 q.pop() 刪除隊具有最高優先級的元素值,但不返回其值 q.top() 返回具有最高優先級的元素值,但不刪除該元素 q.push(item) 在基于優先級的適當位置插入新元素

1.? priority_queue允許用戶為隊列中元素設置優先級,放置元素的時候不是直接放到隊尾,而是放置到比它優先級低的元素前面,標準庫默認使用<操作符來確定優先級關系。

2.? priority_queue模板類有三個模板參數:元素類型,容器類型,比較算子。其中后兩個可以省略,默認容器為vector,默認算子為less,即如果x<y判斷為真,則y排到x前面,y先出隊。

定義priority_queue對象的示例代碼如下

priority_queue<int> q1 priority_queue<pair<int,int>> q2; priority_queue<int, vector<int>, greater<int>> q3;//定義優先級小的先出隊 #include<iostream> #include<queue> #include<functional> using namespace std;int main() {priority_queue<int, vector<int>, greater<int> > que;for (int i = 0; i < 9; ++i)que.push(i);while (!que.empty()){cout << que.top() << " ";que.pop();}return 0; }

輸出結果:

?

#include<iostream> #include<queue> using namespace std; struct node {int x, y;friend bool operator < (node a, node b) //標準庫默認使用 < 來確認它們的關系,換成>就不行了哦{return a.y > b.y; // >表示越小越優先,<表示越大越優先} }; priority_queue<node> que;int main() {node v;for (int i = 0; i < 10; i++){v.x = i;v.y = 10 - i;que.push(v);}while (!que.empty()){cout << que.top().x << "," << que.top().y << endl;que.pop();}system("pause");return 0; }

?輸出結果:

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【C++ Primer | 09】容器适配器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。