1の#include <iostreamの> 2の#include <キュー> 3 使用して 名前空間をSTD。 4 構造体木{ 5 INT NUM。 6 弦秒; 7 ツリー(INT X、文字列ZFC) 8 { 9 NUM = X。 10 S = ZFC。 11 } 12 フレンドブール 演算子 >(CONSTツリー&、CONSTツリー&B) 13 { 14 リターン a.num> b.num; 15 } 16 / *が明らかUFを上書きするために使用されていないない同じ要素は低下する* / 17 / * <(CONST Aツリー&)BOOL演算子をCONST 18である { 19。 リターンa.num> NUM。 20である } * / 21である BOOLの 演算子(== CONSTツリー&)CONST 22は { 23が リターン > a.num ; NUM 24 } 25 }; 26である / * 2つのオーバーロードされた<一ことができ、容易に明らか重量内外異なるパラメータの数滴を含有* / 27 BOOLの 演算子 <(Aツリー、ツリーB) 28 { 29 リターン AS < BS; 30 } 31は 、INT (メイン) 32 { 33である <ツリー> PRIORITY_QUEUE Q; 34である / * プライオリティキューを使用するように、<リロードする必要がある* / 35 ツリーT(5。 、" HH " ); 36 q.push(T); 37 [ ツリーR&LT(4、" XX " ); 38である q.push(R&LT); 39 ながら(!q.empty()) 40 { 41のIS 。COUT << q.top()NUM << " " << q.top()S << ENDL。 42 q.pop()。 43 } 44 であれば(R == T) 45 COUT << " HH " 。 46 他の 47 coutの<< " XX " 。 48 }
これは、カスタム型内に設置され、通常の優先度キューです。
1の#include <iostreamの> 2の#include <キュー> 3 使用して 名前空間をSTD。 4のtypedef 構造体の木* T; 5 構造体ツリー{ 6 INT NUM。 7 文字列sの。 8 次T。 9 ツリー(){ 10 } 11 ツリー(INT X、文字列ZFC) 12 { 13 NUM = X。 14 S = ZFC。 15 } 16 友達BOOLの 演算子 <(CONSTツリーA、CONST ツリーB) 17 { 18は リターン b.num> a.num; 19 } 20 }; 21れる 構造体CMP { 22は BOOLの 演算子()(T A、T B) 23は、 { 24 リターン A - > NUM> B-> NUM; 25 } 26である }; / * 三つのパラメータが書き込まれなければならないPRIORITY_QUEUE、ソート機能キャリア本体構造を使用* / 27 のint main()の 28 { 29 // PRIORITY_QUEUE <T、ベクトル<T>、CMP> Q。 30 PRIORITY_QUEUE <T> Q; / * 過負荷のランキング機能がありませんプライオリティキューを作成するには、理由がわからない、それは与えられていない* / 31である T = T 新しい新しいツリー(); / * ポインタ型の領域を割り当てる必要があります* / 32 T-> NUM = 5。 、 33で T-> S = " HHH " ; 34であり ; q.push(T) 35 T = R&LT 新しい新しいツリー(); 36 R-> NUM = 4 ; 37 [ R-> = S " XXX " ; 38である q.push(R&LT); 39 T Hは= 新しい新しいツリー(図3、" NN " ); 40 q.push(H)。 41 ながら(!q.empty()) 42 { 43 COUT << q.top() - > NUM << " " << q.top() - > S << ENDL。 44 q.pop()。 45 } 46 }
ソート機能を持つ三つのパラメータPRIORITY_QUEUE、必要な構造体を使用している場合。その後、プロセスを使用して、いくつかの問題に遭遇、私は理由を知りません。