一般的に薄型テレビ(武士)として知られている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それを。