我有以下代码:
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();