1

さまざまな double 変数を std::cout する必要があります。double を std::string に変換する単純な関数を作成しました。これを std::cout などで使用できます。

// Convert a double to a string.
std::string dtos(double x) {
    std::stringstream s;
    s << x;
    return s.str();
}

関数は正常に動作しているようですが、私の質問は次のとおりです。このアプローチには、(悪い) メモリへの影響がありますか? 不必要なメモリを割り当てていますか、それとも「ぶら下がっている」ものを残していますか?

みんなありがとうピート

4

3 に答える 3

2

いいえ、コードは問題ありません。コードのコメントを読んでください。

std::string dtos(double x) {
    std::stringstream s;  // Allocates memory on stack
    s << x;
    return s.str();       // returns a s.str() as a string by value
                          // Frees allocated memory of s
} 

さらに、doubleto をcout直接渡すこともできます。

于 2013-04-20T06:44:24.010 に答える
1

double を文字列に変更して使用する必要はありませんstd::cout

cout << x; 

としてうまく動作します

cout << dtos(x); 

また、他の理由で double を string に変更したい場合は、C++11 でstd::to_stringを使用できます。

それ以外は、コードは問題ありません。

于 2013-04-20T06:47:43.270 に答える