我想知道在将字符串传递给函数时(例如插入向量),下面的代码在#1、#2 和#3 之间是否有任何区别。尤其是在处理代码中的数百万个字符串时。
std::vector<std::string> v;
std::string s("foo");
int i = 1;
v.push_back( s + "bar" + boost::lexical_cast<std::string>(i) ); // #1
v.push_back( std::string(s + "bar" + boost::lexical_cast<std::string>(i)) ); // #2
std::string s2 = s + "bar" + boost::lexical_cast<std::string>(i);
v.push_back(s2); // #3