学習pb_ds

  一般的に薄型テレビ(武士)として知られているpb_ds GNU-C ++は、データ構造の数を実装するC ++拡張ライブラリが付属しています。

書くために別の拡張ライブラリであるため、 

使用して 名前空間の __gnu_pbdsを。

 

ここでは三つの主要なデータ構造があります。

1.ハッシュテーブル


ヘッダ

書式#include <EXT / pb_ds / assoc_container.hpp> 
の#include <EXT / pb_ds / hash_policy.hpp>
 使用して 名前空間の __gnu_pbds

道の二つの定義

cc_hash_table < 文字列整数 > MP1; // ファスナー方法 
gp_hash_table < 文字列整数 > MP2; // (高速に)プロセスを識別

PS:マップよりもより効率的ハッシュ関数の二種類、及び地図方法及びそれを用いました

2.ヒープ

ヘッダー:

通常のプライオリティキューの使用と同様に、

書式#include <EXT / pb_ds / priority_queue.hpp>
 使用して 名前空間の__gnu_pbdsを。
__gnu_pbds :: PRIORITY_QUEUE < 整数 > Q; 
__gnu_pbds :: PRIORITY_QUEUE < int型、大きい< int型 >、pairing_heap_tag> PQ; // 最快 
__gnu_pbds :: PRIORITY_QUEUE < int型、大きい< int型 >、binary_heap_tag> PQ; 
__gnu_pbds :: PRIORITY_QUEUE < int型、大きい< int型 >、binomial_heap_tag> PQ; 
__gnu_pbds :: PRIORITY_QUEUE < int型、大きい< int型 >、rc_binomial_heap_tag> PQ;
__gnu_pbds :: PRIORITY_QUEUE < int型、大きい< int型 >、thin_heap_tag> PQ; 
__gnu_pbds :: PRIORITY_QUEUE < int型、大きい< int型 >> PQ;

ヒープは、ライブラリーは、5個のタグを提供していますpb_ds、ある  pairing_heap_tag  binary_heap_tag binomial_heap_tag rc_binomial_heap_tag thin_heap_tag 追加する同じ名前のため  __gnu_pbdsを::  

基本操作:

プッシュ()   // イテレータを返す 
)(トップ   // STLのと 
サイズ()   // STLと 
空()// STLと 
クリア()   // STLので 
POP()   // STLと 
参加(PRIORITY_QUEUE・その他)   // 2つのスタックをマージし、他はクリアされます 
スプリット(PREDフォルテPRD、および他のPRIORITY_QUEUE)   // 2つのスタックが分離 
修正(point_iterator ITは、CONSTキー)   // ノードの値を変更します

プライオリティキューイテレータ:

__gnu_pbd :: PRIORITY_QUEUE < 整数 > :: point_iteratorそれを。

 

おすすめ

転載: www.cnblogs.com/jiqimin/p/11226809.html