私は次のコードを持っています:
int n=2;
ostringstream convert; // stream used for the conversion
convert << n;
string query= convert.str();
どうすれば ostringstream を解放できますか?
私は次のコードを持っています:
int n=2;
ostringstream convert; // stream used for the conversion
convert << n;
string query= convert.str();
どうすれば ostringstream を解放できますか?
ライフタイム管理の場合:
std::string query;
int n = 2;
{
std::ostringstream oss;
oss << n;
query = oss.str();
}
短くなりますが、読むのが少し難しくなります:
int n = 2;
std::string query
= static_cast<std::ostringstream &>(std::ostringstream() << n).str();
状況に応じて、おそらくより良いでしょう:
auto query = std::to_string(2);
範囲外にしましょう:
int n=2;
string query;
{
ostringstream convert;
convert << n;
query = convert.str();
}
ストリームを解放する必要はありません。ストリームはスタック上にあるため、自動的に破棄されます。
どうすれば ostringstream を解放できますか?
「無料」がインスタンスの「リソースの割り当てを解除する」ことを意味する場合は、範囲外にします。
int n=2;
string query;
{
ostringstream convert; // stream used for the conversion
convert << n;
qyuery = convert.str();
}
「内容をクリアする」という意味の場合は、次を使用できます。
int n=2;
ostringstream convert; // stream used for the conversion
convert << n;
string query1 = convert.str();
// clear the contents & reset error bits (thanks @PeterWood)
convert.str("");
convert.clear();
convert << n + 1;
string query2 = convert.str();