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