c++ stl ライブラリのコンテキストでは、より良い string::+= または sstream::<< を実行するものは何ですか?それとも他の何かに依存しますか?
編集:追加するデータのサイズに依存しますか?
c++ stl ライブラリのコンテキストでは、より良い string::+= または sstream::<< を実行するものは何ですか?それとも他の何かに依存しますか?
編集:追加するデータのサイズに依存しますか?
多くのさまざまなパラメーターに依存します。主なパラメーターは、これらの演算子とコンパイラー自体の実装です。
コンパイラの特定のバージョンでの単純なテストは、単純な観察である可能性があります。たとえば、単純にstring
orに短い文字列を 10,000,000 回追加しistringstream
て時間を測定すると、ここで行われます。+=
の方が速いことを示してい<<
ます。
time (ms):534.02 // For +=
time (ms):927.578 // For <<
実際のアプリケーションでは、 を使用する必要があります+=
。これが遅く、パフォーマンスが低下していると思われる場合は、別のものをテストしてください。プロファイリングがキーワードです。