2

多くの言語とフレームワークは「バイト配列」型を提供していますが、C++ 標準ライブラリは提供していません。中サイズの1、サイズ変更可能なバイト配列に使用するのに適した型と、その型を効率的に使用するにはどうすればよいですか? (特に: 割り当て、パラメーターとしての受け渡し、および破棄)


1: 中規模とは、100 MB 未満を意味します。

4

5 に答える 5

0

vector<char>あなたの目的には問題ないはずです。コピーを避けるために共有バージョンが必要な場合は、次を使用できます。

typedef shared_ptr<vector<uint8_t>> ByteArray;

コンパイル時のサイズがわかっている場合は、arrayスペース効率がわずかに高い方を使用できます。

またstring、ベクトルよりも適切である場合とそうでない場合がある null 文字を処理できます。

一部の拡張実装にはロープ実装がありますhttp://en.wikipedia.org/wiki/Ropehttp://www.aoc.nrao.edu/php/tjuerges/ALMA/STL/html-3.4.6/rope.html、それはより適切かもしれません。

于 2012-04-09T18:28:52.717 に答える
0

少なくとも比較的大きなバッファーの場合は、代わりに unique_ptr を使用するパフォーマンス上の理由があります。詳細については、 https://stackoverflow.com/a/35798248/1992615を参照してください。

于 2016-06-16T08:32:28.777 に答える