1. ホーム
  2. c++

[解決済み] istringstream、ostringstream、stringstreamの違いは何ですか?/ なぜすべてのケースでstringstreamを使用しないのですか?

2022-02-10 13:01:56

質問

どのような場合に std::istringstream , std::ostringstreamstd::stringstream を使うべきで、なぜ std::stringstream をすべてのシナリオで使用することができます(実行時のパフォーマンスに問題はないでしょうか?)

最後に、(ストリームを全く使わない代わりに)何か悪い点はないでしょうか。

std::string stHehe("Hello ");

stHehe += "stackoverflow.com";
stHehe += "!";

解決方法は?

個人的には、同じ文字列ストリームへのストリーミングと、同じ文字列ストリームからのストリーミングを実行したいことは非常に稀です。

通常は、文字列からストリームを初期化してそれをパースするか、文字列ストリームに何かを流し、その結果を取り出して保存したいのです。

同じストリームとの間でストリーミングを行う場合、ストリームの状態やストリームの位置に非常に注意する必要があります。

ただ」を使う istringstream または ostringstream を使用することで、意図をより明確に表現でき、また、誤って <<>> .

そこに かもしれない しかし、私なら、まずその点には目を向けません。

あなたが書いたものは何も問題ありません。もし十分なパフォーマンスが得られないと感じたら、他のアプローチをプロファイリングすることもできますし、そうでなければ、最も明確なものにこだわってください。個人的には、この方法がいいと思います。

std::string stHehe( "Hello stackoverflow.com!" );