使用std::stringstream
为:
#include <sstream> //include this
std::stringstream ss;
ss << Folder << rnd;
string final_name = ss.str();
或者,你可以在一行中写:
string final_name = stringbuilder() << Folder << rnd;
它只需要一个小实用类:
struct stringbuilder
{
std::stringstream ss;
template<typename T>
stringbuilder & operator << (const T &data)
{
ss << data;
return *this;
}
operator std::string() { return ss.str(); }
};
使用这个类,你可以在飞行中为创建std::string
:
void f(const std::string & file) {}
f(stringbuilder() << Folder << rnd);
std::string s = stringbuilder() << 25 << " is greater than " << 5 ;
忌讳:'兰特()/(RAND_MAX/10 + 1)'看到http://eternallyconfuzzled.com /arts/jsw_art_rand.aspx – sehe
@sehe:谢谢你的信息 –