使用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:謝謝你的信息 –