nlib
nn::nlib::SmartBitmap< N, BIT > クラステンプレートfinal

Rank/Select操作つきのビットデータを保持するデータ構造です。 [詳解]

#include "nn/nlib/SmartBitmap.h"

+ nn::nlib::SmartBitmap< N, BIT > の継承関係図

その他の継承メンバ

- 基底クラス nn::nlib::SmartBitmapCrtp< N, SmartBitmap< N, BIT >, BIT > に属する継承公開メンバ関数
unsigned int GetBitVectorSize () const noexcept
 ビットデータのサイズを返します。 [詳解]
 
const BIT * GetBitVector () const noexcept
 ビットデータへのポインタを返します。 [詳解]
 
bool Has (unsigned int idx) const noexcept
 値が集合に含まれているかどうかをテストします。 [詳解]
 
bool operator[] (const unsigned int idx) const noexcept
 値が集合に含まれているかどうかをテストします。 [詳解]
 
unsigned int Rank1 (unsigned int idx) const noexcept
 Rank操作を行います。 [詳解]
 
unsigned int Rank0 (unsigned int idx) const noexcept
 Rank操作を行います。 [詳解]
 
int Select1 (unsigned int nth) const noexcept
 nth 番目の1ビットの場所を返します。nth は0から開始します。 [詳解]
 
int Select0 (unsigned int nth) const noexcept
 nth 番目の0ビットの場所を返します。nth は0から開始します。 [詳解]
 
bool Set (unsigned int idx) noexcept
 集合に32bit符号なし整数を追加します。 [詳解]
 
bool Set (unsigned int idx, bool value) noexcept
 ビットデータのビットを設定します。 [詳解]
 
bool TurnOn (unsigned int idx) noexcept
 集合に32bit符号なし整数を追加します。 [詳解]
 
bool Unset (unsigned int idx) noexcept
 集合から32bit符号なし整数を取り除きます。 [詳解]
 
void Reset () noexcept
 オブジェクトをコンストラクタが呼ばれた直後の状態にします。
 

詳解

template<size_t N, class BIT = uint64_t>
class nn::nlib::SmartBitmap< N, BIT >

Rank/Select操作つきのビットデータを保持するデータ構造です。

テンプレート引数
Nビットデータのサイズ(N bits)
説明
データメンバにビットデータの実体を保持しています。 ビットデータを動的に作成する場合に向いてます。
SmartBitmap<10> bmp;
bmp.Set(0);
bmp.Set(4);
bmp.Set(7);
bmp.Rank1(4); // [0..4]の範囲にある1のビットの数を返す。2が返ってくる。
bmp.Rank1(10000); // ビットマップの存在範囲から外れていてもOK。3が返ってくる。
bmp.Select1(2); // 7が返ってくる。
bmp.Select1(3); // -1が返ってくる。
各種例:
succinct/bitvector/bitvector.cpp.

SmartBitmap.h144 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: