追記可能な圧縮された整数配列です。
[詳解]
#include "nn/nlib/succinct/Sbv.h"
追記可能な圧縮された整数配列です。
- 説明
- 整数配列を64個ずつのブロックにわけ、ブロックの代表値と代表値からの64個の差分を記録しています。 差分値はブロックごとに一定のビット幅に詰めて格納しています。 代表値と差分を足すというごく簡単な計算で値に対するランダムアクセスが可能です。
- 簡単な方法の割には小さい値の割合が多いデータを格納する場合の圧縮率が高く、そのまま配列を格納した場合の1/2から1/4のサイズにすることができる場合が多いです。
Sbv.h の 191 行目に定義があります。
◆ Export()
nn::nlib::succinct::CompressedArray::Export |
( |
BinaryWriter * |
w | ) |
const |
|
noexcept |
オブジェクトを(ファイルに)書き出します。
- 引数
-
- 戻り値
- 成功した場合は
true
- 説明
- 書きだしたデータは
Import()
関数で読みだして復元することができます。 また、データは常にリトルエンディアンで書き出されます。
◆ Import()
nn::nlib::succinct::CompressedArray::Import |
( |
BinaryReader * |
r | ) |
|
|
noexcept |
書き出されたオブジェクトを読み出します。
- 引数
-
- 戻り値
- インポートが成功した場合は
true
◆ MemSize()
nn::nlib::succinct::CompressedArray::MemSize |
( |
| ) |
const |
|
noexcept |
このクラスが明示的に確保するメモリ量を返します。
- 戻り値
- バイト数
- 説明
- 実際にシステムが確保するメモリ量はアライメントやヒープの管理領域の関係上この関数の返り値より大きい可能性があります。
◆ operator[]()
nn::nlib::succinct::CompressedArray::operator[] |
( |
size_t |
idx | ) |
const |
|
noexcept |
インデックスを指定して値を取り出します。
- 引数
-
- 戻り値
- 配列の値。
idx
が範囲外の場合は0
◆ PushBack()
nn::nlib::succinct::CompressedArray::PushBack |
( |
uint32_t |
x | ) |
|
|
inlinenoexcept |
データを追加します。64個単位の長さになるとデータを圧縮します。
- 引数
-
- 戻り値
- 成功した場合
true
Sbv.h の 207 行目に定義があります。
このクラス詳解は次のファイルから抽出されました: