專業(yè)網(wǎng)站建設(shè)制作價格網(wǎng)絡(luò)營銷師培訓(xùn)費用是多少
內(nèi)置類型就是 C++ 提供的數(shù)據(jù)類型,?如 int 、 double 、 long long 等。以 int 類型為例,分別創(chuàng)建?根堆和?根堆。
這種寫法意思是,我要告訴這個優(yōu)先級隊列要建一個什么樣的堆,第一個int是要存什么數(shù)據(jù)類型,vector<int>這個優(yōu)先級隊列要用什么類型來實現(xiàn),相當(dāng)于這個堆是要用vector實現(xiàn)的,less<int>是比較方式,決定了最終實現(xiàn)的是大根堆還是小根堆,less是小于的意思,c++提供的小于的比較方式,比如<>里傳的int,就會拿int作比較,是小于的話就返回true,否則返回false,因此我們可以把它理解成小于的比較方式,大于的比較方式是greater,創(chuàng)建大根堆用less<int>,小根堆用greater<int>
?
?
//大根堆
priority_queue<int, vector<int>, less<int>> heap2;
//小根堆
priority_queue<int, vector<int>, greater<int>> heap3;
- 記憶方式:
- 大根堆用小于 把小的比下來
- 小根堆用大于 把大的比下來
代碼實現(xiàn)
#include <iostream>
#include <queue>
using namespace std;int a[10] = { 1, 41, 23, 10, 11, 2, -1, 99, 14, 0 };//內(nèi)置類型
void test1()
{//大根堆priority_queue<int> heap1;//大根堆// priority_queue<數(shù)據(jù)類型, 存儲結(jié)構(gòu), 比較方式>priority_queue<int, vector<int>, less<int>> heap2;//小根堆priority_queue<int, vector<int>, greater<int>> heap3;//記憶方式://大根堆用小于 把小的比下來//小根堆用大于 把大的比下來for (int i = 0; i < 10; ++i){heap2.push(a[i]);heap3.push(a[i]);}cout << "大根堆:";while (heap2.size()){cout << heap2.top() << " ";heap2.pop();}cout << endl;cout << "小根堆:";while (heap3.size()){cout << heap3.top() << " ";heap3.pop();}cout << endl;
}int main()
{test1();return 0;
}