整数から整数へのコンパクトなリードオンリーの連想配列です。
[詳解]
#include "nn/nlib/succinct/Sbv.h"
整数から整数へのコンパクトなリードオンリーの連想配列です。
- 説明
- キーとなる整数を
SparseSet
クラスを用いて格納し、値となる整数をCompressedArray
クラスを用いて格納しています。 疎な連想配列の実装に向いています。
- このクラスの利用方法は、以下のとおりです。
-
コンストラクタでオブジェクトを作成します。
-
Init()
で定義域を設定してビットベクトルを初期化します。
-
TurnOn()
でキーと対応する値を追加します。
-
Build()
でRank/Select
操作を定数時間で行うための辞書を構築します。
-
以上で連想配列が使えるようになります。
- データを
Export()
で書きだした場合はコンストラクタの実行後にImport()
を呼び出すことで利用できるようになります。
Sbv.h の 247 行目に定義があります。
◆ Build()
nn::nlib::succinct::Map::Build |
( |
| ) |
|
|
inlinenoexcept |
連想配列を構築します。
- 戻り値
- 成功した場合は
true
Sbv.h の 286 行目に定義があります。
◆ Export()
オブジェクトを(ファイルに)書き出します。
- 引数
-
- 戻り値
- 成功した場合は
true
- 説明
- 書きだしたデータは
Import()
関数で読みだして復元することができます。 また、データは常にリトルエンディアンで書き出されます。
Sbv.h の 310 行目に定義があります。
◆ Find() [1/2]
nn::nlib::succinct::Map::Find |
( |
IdxType |
idx | ) |
|
|
inlinenoexcept |
キーを指定して連想配列から値を取得します。
- 引数
-
- 戻り値
bool
とuint32_t
のペア。キーに対応する値が見つかった場合はbool
値がtrue
Sbv.h の 287 行目に定義があります。
◆ Find() [2/2]
nn::nlib::succinct::Map::Find |
( |
IdxType |
idx | ) |
const |
|
inlinenoexcept |
キーを指定して連想配列から値を取得します。
- 引数
-
- 戻り値
bool
とuint32_t
のペア。キーに対応する値が見つかった場合はbool
値がtrue
Sbv.h の 293 行目に定義があります。
◆ GetKeys()
nn::nlib::succinct::Map::GetKeys |
( |
| ) |
const |
|
inlinenoexcept |
◆ GetValues()
nn::nlib::succinct::Map::GetValues |
( |
| ) |
const |
|
inlinenoexcept |
◆ Import()
書き出されたオブジェクトを読み出します。
- 引数
-
- 戻り値
- インポートが成功した場合は
true
Sbv.h の 315 行目に定義があります。
◆ Init()
nn::nlib::succinct::Map::Init |
( |
IdxType |
bv_size | ) |
|
|
inlinenoexcept |
オブジェクトを初期化します。
- 引数
-
[in] | bv_size | キーの取りうる値の上限(bv_size 自体は含まず) |
- 戻り値
- 成功した場合は
true
- 説明
0
以上bv_size
未満の値をキーとすることができるようになります。
Sbv.h の 277 行目に定義があります。
◆ MemSize()
nn::nlib::succinct::Map::MemSize |
( |
| ) |
const |
|
inlinenoexcept |
このクラスが明示的に確保するメモリ量を返します。
- 戻り値
- バイト数
- 実際にシステムが確保するメモリ量はアライメントやヒープの管理領域の関係上この関数の返り値より大きい可能性があります。
Sbv.h の 299 行目に定義があります。
◆ swap()
void nn::nlib::succinct::Map::swap |
( |
Map & |
rhs | ) |
|
|
inlinenoexcept |
オブジェクトの内容をスワップします。
- 非推奨:
- この関数は将来のリリースにおいて削除されます。
Sbv.h の 349 行目に定義があります。
◆ TurnOn()
nn::nlib::succinct::Map::TurnOn |
( |
IdxType |
idx, |
|
|
uint32_t |
data |
|
) |
| |
|
inlinenoexcept |
キーと値を追加します。
- 引数
-
[in] | idx | キーとなる整数値 |
[in] | data | 値となる整数値 |
- 戻り値
- 成功した場合は
true
- 説明
- この関数を繰り返し使う場合、
idx
は単調増加である必要があります。 つまり小さいキーから順番に設定していく必要があります。
Sbv.h の 281 行目に定義があります。
このクラス詳解は次のファイルから抽出されました: