0

大きな文字列バッファと入力ストリームがあります

basic_string<uint8_t> *buf = ......;
istream in = ......;

ファイルの一部を文字列に読み込む最も効率的な方法は何ですか? たとえば、ファイルの 0xE3CC 番目から 0x1A481 番目のバイト。

ここで istream::read は、生の char[] を読み取るため、答えではないようです。データが非常に大きいため、一時変数を持つことは[非]効率的です。

悲しいことに、私は C++0x を持っていないので、copy_n は使用できません。何を提案しますか?ありがとう。

4

1 に答える 1

1
buf->resize(size);
in.read(&((*buf)[0], size);

ところで、あなたは本当にbufポインタになる必要がありますか?

于 2013-10-22T10:39:32.233 に答える