掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
std::stringstreamのwrite(buf, 1000000)が遅いです (ID:67399)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>「拡張されるのは"現サイズの2倍"」ということですが > 1Mまで倍々で拡張されるということでしょうか? だから実装次第だってば。 やってみるっきゃないやんかー #include <iostream> #include <iomanip> #include <string> using namespace std; int main() { string s; size_t capacity = 0; int reallocs = 0; for ( int i = 0; i < 1024*1024; ++i ) { s.reserve(i); if ( capacity != s.capacity() ) { ++reallocs; capacity = s.capacity(); cout << setw(10) << i << setw(10) << capacity << endl; } } cout << reallocs << " reallocations\n"; } VC++でやってみた。 0 15 16 31 32 47 48 70 71 105 106 157 158 235 236 352 353 528 529 792 793 1188 1189 1782 1783 2673 2674 4009 4010 6013 6014 9019 9020 13528 13529 20292 20293 30438 30439 45657 45658 68485 68486 102727 102728 154090 154091 231135 231136 346702 346703 520053 520054 780079 780080 1170118 28times reallocations きっちり二倍ってことではなさそうですねー
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.