◇ prevectorとは?
std::vectorと同じ作用を持ちますがすべてが動的処理ではなく先頭よりnバイトまでが固定長となります。そして、std::vectorと同じメソッドが実装される「独自定義クラス」です。ブロックチェーンの主に「スクリプトの処理」ではサイズが決まっている場合が多いため、
このprevectorを使うとパフォーマンスが向上いたします。もちろん固定長分を超えてしまっても大丈夫です。自動的にstd::vectorと同じ「可変長」になります。
型は以下の通りです。例えば、固定長28バイトのuint8_tなら、prevector<28, uint8_t>です。
template <unsigned int N, typename T, typename Size = uint32_t, typename Diff = int32_t>
class prevector
◇ サンプルコード
prevector<28, uint8_t> test; test.push_back('n'); test.push_back('e'); test.push_back('k'); test.push_back('o'); for(auto mi = test.begin(); mi!=test.end(); ++mi) ::fprintf(stdout, "%c\n", *mi);