PRIORITY_QUEUE内部のカスタムタイプ。

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、必要な構造体を使用している場合。その後、プロセスを使用して、いくつかの問題に遭遇、私は理由を知りません。

おすすめ

転載: www.cnblogs.com/dayq/p/11939324.html