string到int类型的转换
std::stringstream stream;
string result="10000";
int n = 0;
stream << result;
stream >> n;//n等于10000
int到string类型的转换
string result;
int n = 12345;
stream << n;
result =stream.str();// result等于"12345"
重复利用stringstream对象
如果你打算在多次转换中使用同一个stringstream对象,记住再每次转换前要使用clear()方法,在多次转换中重复使用同一个stringstream(而不是每次都创建一个新的对象)对象最大的好处在于效率。stringstream对象的构造和析构函数通常是非常耗费CPU时间的。经试验,单单使用clear()并不能清除stringstream对象的内容,仅仅是了该对象的状态,要重复使用同一个stringstream对象,需要使用str()重新初始化该对象。
示例2:
while (std::cin>>i)
{
temp.push_back(i);
if (temp.size()>1)
{
std::vector
stream<
std::cout<<"size:"+stream.str()< stream.clear(); stream.str(""); } } 转换中使用模板 也可以轻松地定义函数模板来将一个任意的类型转换到特定的目标类型。例如,需要将各种数字值,如int、long、double等等转换成字符串,要使用以一个string类型和一个任意值t为参数的to_string()函数。to_string()函数将t转换为字符串并写入result中。使用str()成员函数来获取流内部缓冲的一份拷贝: 示例3: template void to_string(string & result,const T& t) { ostringstream oss;//创建一个流 oss< result=oss.str();//获取转换后的字符转并将其写入result 这样,你就和衣轻松地将多种数值转换成字符串了: to_string(s1,10.5);//double到string to_string(s2,123);//int到string to_string(s3,true);//bool到string
}