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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STL之stack,queue,优先队列

發布時間:2024/9/27 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL之stack,queue,优先队列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


1.stack,size(),empty(),pop()函數

#include<stack>

#include <iostream>

?

using namespace std;

?

//通過push()方法入棧

//通過size()方法求棧中元素的個數

//通過empty()方法判斷棧是否為空

//通過pop()求棧中最頂端的元素

void main()

{

??? int num;

??? cin >> num;

??? stack<int> mystack;

??? for (; num; num /= 2)

??? {

??????? mystack.push(num % 2);

??????? std::cout << "當前元素個數" << mystack.size() << endl;

??? }

??? while (!mystack.empty())

??? {

??????? int num = mystack.top();

??????? std::cout << num << " ";

??????? mystack.pop();

??? }

?

??? cin.get();

??? cin.get();

}

運行結果:

2.queue,隊列

#include <queue>

#include <iostream>

#include <string>

#include <stdlib.h>

#include <list>

?

#include <deque> //雙端隊列

?

//提供了二維動態數組的功能,頭部,尾部,任意操作

?

using namespace std;

?

void main()

{

??? queue<char *> myq;

??? myq.push("calc");

??? myq.push("notepad");

??? myq.push("tasklist");

??? myq.push("mspaint");

?

??? while (!myq.empty())

??? {

??????? char *p = myq.front();//獲取

??????? system(p);

??????? myq.pop();

??? }

?

??? cin.get();

??? //運行結果是:

??? //彈出計算器

??? //彈出notepad

??? //顯示進程

??? //彈出mspaint

}

案例2

#include <queue>

#include <iostream>

#include <string>

#include <stdlib.h>

#include <list>

?

#include <deque> //雙端隊列

?

//提供了二維動態數組的功能,頭部,尾部,任意操作

?

using namespace std;

?

void main()

{

??? deque<int> mydq;

??? mydq.push_back(1);

??? mydq.push_back(11);

??? mydq.push_back(111);

??? mydq.push_back(1111);

??? mydq.push_back(11111);

??? mydq.push_front(123);

??? mydq.insert(mydq.begin() + 3, 100);//插入

?

??? //類似數組的方式打印出結果

??? for (int i = 0; i < mydq.size(); i++)

??? {

??????? std::cout << mydq[i] << std::endl;

??? }

?

??? std::cout << "------------------" << std::endl;

?

??? //通過beginend的方式實現打印出結果

??? auto ib = mydq.begin();

??? auto ie = mydq.end();

??? for (; ib != ie; ib++)

??? {

??????? std::cout << *ib << std::endl;

??? }

?

??? cin.get();

}

運行結果:

案例3

關于隊列的erase(),刪除某個元素

#include <queue>

#include <iostream>

#include <string>

#include <stdlib.h>

#include <list>

?

#include <deque> //雙端隊列

?

//提供了二維動態數組的功能,頭部,尾部,任意操作

?

using namespace std;

//刪除元素

void main()

{

??? deque<int> mydq;

??? mydq.push_back(1);

??? mydq.push_back(11);

??? mydq.push_back(111);

??? mydq.push_back(1111);

??? mydq.push_back(11111);

??? mydq.push_back(123);

??? //刪除頭部元素

??? mydq.erase(mydq.begin());

??? //刪除尾部元素

??? mydq.erase(mydq.end() - 1);

?

??? auto ib = mydq.begin();

??? auto ie = mydq.end();

??? for (; ib != ie;ib++)

??? {

??????? std::cout << *ib << std::endl;

??? }

?

??? cin.get();

}

運行結果:

案例4

關于pop_front()pop_back()

#include <queue>

#include <iostream>

#include <string>

#include <stdlib.h>

#include <list>

?

#include <deque> //雙端隊列

?

//提供了二維動態數組的功能,頭部,尾部,任意操作

?

using namespace std;

//刪除元素

void main()

{

??? deque<int> mydq;

??? mydq.push_back(1);

??? mydq.push_back(11);

??? mydq.push_back(111);

??? mydq.push_back(1111);

??? mydq.push_back(11111);

??? mydq.push_back(123);

??? //頭部彈出

??? mydq.pop_front();

??? //尾部彈出

??? mydq.pop_back();

?

??? auto ib = mydq.begin();

??? auto ie = mydq.end();

??? for (; ib != ie;ib++)

??? {

??????? std::cout << *ib << std::endl;

??? }

?

??? cin.get();

}

運行結果:

案例5

#include <queue>

#include <iostream>

#include <string>

#include <stdlib.h>

#include <list>

?

#include <deque> //雙端隊列

?

//提供了二維動態數組的功能,頭部,尾部,任意操作

?

using namespace std;

//刪除元素

void main()

{

??? deque<int> mydq;

??? mydq.push_back(1);

??? mydq.push_back(11);

??? mydq.push_back(111);

??? mydq.push_back(1111);

??? mydq.push_back(11111);

??? mydq.push_back(123);

??? //清空

??? mydq.clear();

?

??? auto ib = mydq.begin();

??? auto ie = mydq.end();

??? for (; ib != ie;ib++)

??? {

??????? std::cout << *ib << std::endl;

??? }

?

??? cin.get();

}

運行結果:

案例6

swap實現兩個棧中的內容交換

#include <queue>

#include <iostream>

#include <string>

#include <stdlib.h>

#include <list>

?

#include <deque> //雙端隊列

?

//提供了二維動態數組的功能,頭部,尾部,任意操作

?

using namespace std;

//swap()兩個棧中的數據交換

void main()

{

??? deque<int> mydq1;

??? mydq1.push_back(1);

??? mydq1.push_back(11);

??? mydq1.push_back(111);

??? mydq1.push_back(1111);

??? mydq1.push_back(11111);

?

??? deque<int> mydq2;

??? mydq2.push_back(2);

??? mydq2.push_back(21);

??? mydq2.push_back(211);

??? mydq2.push_back(2111);

??? mydq2.push_back(21111);

?

??? mydq1.swap(mydq2);

?

??? {

??????? auto ib = mydq1.begin();

??????? auto ie = mydq1.end();

??????? for (; ib != ie; ib++)

??????? {

??????????? std::cout << *ib << std::endl;

??????? }

??? }

?

??? std::cout << "---------------" << std::endl;

?

??? {

??????? auto ib = mydq2.begin();

??????? auto ie = mydq2.end();

??????? for (; ib != ie;ib++)

??????? {

??????????? std::cout << *ib << std::endl;

??????? }

??? }

?

??? cin.get();

}

案例7.

關于front(),back(),max_size(),size()

#include <queue>

#include <iostream>

#include <string>

#include <stdlib.h>

#include <list>

?

#include <deque> //雙端隊列

?

//提供了二維動態數組的功能,頭部,尾部,任意操作

?

using namespace std;

//swap()兩個棧中的數據交換

void main()

{

??? deque<int> mydq1;

??? mydq1.push_back(1);

??? mydq1.push_back(11);

??? mydq1.push_back(111);

??? mydq1.push_back(1111);

??? mydq1.push_back(11111);

?

??? //第一個元素

??? std::cout << mydq1.front() << std::endl;

??? //最后一個元素值

??? std::cout << mydq1.back() << std::endl;

??? //棧所允許的最大個數

??? std::cout << mydq1.max_size() << std::endl;

??? //當前棧的個數

??? std::cout << mydq1.size() << std::endl;

?

??? cin.get();

}

運行結果:

3.優先隊列

優先隊列實現的參數的結果是有序的

#include <queue>

#include <iostream>

?

using namespace std;

//優先隊列實現了自動排序功能

void main()

{

??? priority_queue<int> myq;

??? myq.push(10);

??? myq.push(12);

??? myq.push(11);

??? myq.push(110);

??? myq.push(101);//自動排序

?

??? while (!myq.empty())

??? {

??????? std::cout << myq.top() << endl;

??????? myq.pop();

??? }

?

??? cin.get();

}

運行結果:

4.優先隊列之2

案例:

#include <queue>

#include <iostream>

#include <string>

#include <stdlib.h>

#include <list>

?

#include<deque>//雙端隊列

using namespace std;

struct student

{

??? int age;

??? string name;

};

?

//這里按照年齡比較大小

struct stuless

{

??? bool operator()(const student &s1, const student &s2)

??? {

??????? return s1.age < s2.age;

??? }

};

?

void main()

{

??? ????????????//類名 存儲方式是deque方式 按照年齡排序

??? priority_queue<student, deque<student>, stuless> myq;

??? student s1;

??? s1.age = 10;

??? s1.name = "譚勝";

??? student s2;

??? s2.age = 9;

??? s2.name = "熊飛";

??? student s3;

??? s3.age = 19;

??? s3.name = "peng";

??? myq.push(s1);

??? myq.push(s2);

??? myq.push(s3);

??? while (!myq.empty())

??? {

??????? std::cout << myq.top().age << myq.top().name << endl;

??????? myq.pop();

??? }

??? cin.get();

}

運行結果是:

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的STL之stack,queue,优先队列的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91精选视频 | 超碰人人插 | 国产一级爱 | 性色网站 | 天天爱综合网 | 成年人av| 中午字幕在线观看 | 一级爱爱片 | 日本欧美色 | 国产精品乱码一区二三区小蝌蚪 | 美国式禁忌1980 | 蜜桃av网站 | 99精品在线观看视频 | 国产美女在线免费 | 香蕉网在线播放 | 精品乱码一区二区三区 | 老司机午夜性大片 | 亚洲天堂伦理 | 十大黄台在线观看 | 国产精品免费看 | 色四虎| 麻豆剧场 | 国产精品电影网站 | 国产精品一区二区在线看 | 色一情一乱一区二区三区 | av手机天堂网 | 欧美精品久久久久性色 | 黑白配在线观看免费观看 | 国产91区 | 糖心vlog精品一区二区 | 国产一区中文字幕 | 欧美一级鲁丝片 | 男女一级特黄 | jizz日本免费 | 日日噜噜夜夜狠狠久久波多野 | 欧美日韩在线二区 | 免费精品在线视频 | 欧美在线视频不卡 | 亚洲精品丝袜 | 法国少妇愉情理伦片 | 国产精品porn | 日日操日日爽 | 熟女av一区二区三区 | 国产妇女视频 | 日本三级全黄 | 亚洲欧美久久久 | 国产传媒在线观看 | 荷兰女人裸体性做爰 | 天堂在线 | 亚洲第一页中文字幕 | 亚洲日本三级 | 国产精品8 | 老司机综合网 | 欧美www视频| 激情欧美一区二区三区 | 尤物视频在线观看视频 | 91高潮大合集爽到抽搐 | 国产在线xxxx| 91丨九色丨海角社区 | 欧美女优在线观看 | 黄色国产在线播放 | 欧美人与动物xxxx | 亚洲午夜在线视频 | 欧美成人自拍 | 中文字幕国产在线 | 视频在线一区二区三区 | 久久色在线视频 | 亚洲综合另类 | 久久影院一区二区 | 国产精品高潮呻吟久久av黑人 | 成人无码精品1区2区3区免费看 | 九色91porny| 诱惑の诱惑筱田优在线播放 | 中文字幕8 | 国产无遮挡a片又黄又爽 | 中韩毛片 | aaa一区二区三区 | 欧美色999| 日韩精品专区 | 国产视频h | 精品成人在线观看 | 日本免费a视频 | 成人福利一区二区三区 | 校园春色亚洲色图 | 少妇h视频 | 国内毛片毛片毛片 | 日韩最新中文字幕 | 色多多在线观看 | 91精品小视频 | 国产www性| 成年人观看视频 | 激情小说av | 18岁禁黄网站 | 51精产品一区一区三区 | 99视频网站 | 欧美性猛交富婆 | 先锋影音av资源网站 | 女人扒开腿让男人捅爽 | 老牛影视少妇在线观看 |