[cpp]view plain
copy
struct
cmp1
};
struct
cmp2
};
struct
node1
};
struct
node2
};
priority_queue>q1;
//採用預設優先順序構造佇列
priority_queue,vector<
int>,cmp1>q2;
//最小值優先
priority_queue,vector<
int>,cmp2>q3;
//最大值優先
priority_queue,vector<
int>,greater<
int> >q4;
//注意「>>」會被認為錯誤,
//這是右移運算子,所以這裡用空格號隔開,最小值優先
priority_queue,vector<
int>,less<
int> >q5;
//最大值優先
priority_queueq6; //自定義優先順序
priority_queueq7;
stl 中優先佇列的使用方法(priority_queu)
基本操作:
empty() 如果隊列為空返回真
pop() 刪除對頂元素
push() 加入乙個元素
size() 返回優先佇列中擁有的元素個數
top() 返回優先佇列對頂元素
在預設的優先佇列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。
使用方法:
標頭檔案:
#include
宣告方式:
1、普通方法:
priority_queueq;
//通過操作,按照元素從大到小的順序出隊
2、自定義優先順序:
[cpp]view plain
copy
struct
cmp
};
priority_queue, vector<
int>, cmp>q;
//定義方法
[cpp]view plain
copy
//其中,第二個引數為容器型別。第三個引數為比較函式。
3、結構體宣告方式:
[cpp]view plain
copy
struct
node
};
priority_queueq;
//定義方法
//在該結構中,y為值, x為優先順序。
//通過自定義operator《操作符來比較元素中的優先順序。
//在過載」<」時,最好不要過載」>」,可能會發生編譯錯誤
stl 中佇列的使用(queue)
基本操作:
push(x) 將x壓入佇列的末端
pop() 彈出佇列的第乙個元素(隊頂元素),注意此函式並不返回任何值
front() 返回第乙個元素(隊頂元素)
back() 返回最後被壓入的元素(隊尾元素)
empty() 當隊列為空時,返回true
size() 返回佇列的長度
使用方法:
標頭檔案:
#include
宣告方法:
1、普通宣告
queueq;
2、結構體
struct node
;queueq;
stl 中棧的使用方法(stack)
基本操作:
push(x) 將x加入棧中,即入棧操作
pop() 出棧操作(刪除棧頂),只是出棧,沒有返回值
top() 返回第乙個元素(棧頂元素)
size() 返回棧中的元素個數
empty() 當棧為空時,返回 true
使用方法:
和佇列差不多,其中標頭檔案為:
#include
定義方法為:
stacks1;//入棧元素為 int 型
stacks2;// 入隊元素為string型
stacks3;//入隊元素為自定義型
[cpp]view plain
copy
/**/
/**************************************
| |
| stl中優先佇列使用方法 |
| |
| chenlie |
| |
| 2010-3-24 |
| |
*************************************
*/#include
#include
#include
using
namespace
std;
intc[100];
struct
cmp1
};
struct
cmp2
};
struct
node
};
priority_queue>q1;
priority_queue, vector<
int>, cmp1>q2;
priority_queue, vector<
int>, cmp2>q3;
priority_queueq4;
queue>qq1;
queueqq2;
intmain()
cout << endl;
while
(!q4.empty())
// cout << endl;
} return
0;
}
[cpp]view plain
copy
#include
#include
#include
using
namespace
std;
struct
comp
};
priority_queue,vector<
int>,comp>q;
/*優先佇列*/
intmain()
printf("\n"
);
return
0;
}
C STL之優先佇列
首先先講一下仿函式 可能你看了以後也還是不太明白它到底是幹什麼的,怎麼作用的,那麼我就來簡單講一下 仿函式就是帶有乙個或多個過載小括號的成員函式的乙個結構體或類,又叫做仿函式類 仿函式類既可以當函式用,又可以當結構體用,好處是這樣就可以通過傳遞模板類來給stl傳遞乙個你寫的函式 如下 include...
C STL優先佇列
q.empty 如果隊列為空,則返回true,否則返回false q.size 返回佇列中元素的個數 q.pop 刪除隊首元素,但不返回其值 q.top 返回具有最高優先順序的元素值,但不刪除該元素 q.push item 在基於優先順序的適當位置插入新元素template class t clas...
c stl之佇列 棧 與優先佇列
棧 棧是先入後出,後入先出 有push 和pop 兩種操作 使用時定義是stacks top 操作是取棧頂的元素 但是不去刪除 在集合計算機的問題中的一段code 解釋 if idcache.cout x return idcache x 是如若找到集合x就返回他的id 佇列 佇列是 先如先出的 就...