我有一个函数,它基本上从双精度向量中读取值,将它们附加到一个字符串(同时确保每个之间有一个空格并设置它们的精度)并返回最终结果,减去最后的空格:
std::string MultiplePrintProperties::GetHpitchString()
{
std::string str;
vector< double >::iterator it;
for ( it = Vals.begin();
it != Vals.end();
it++ )
{
ostringstream s;
// Set precision to 3 digits after the decimal point
// and read into the string
boost::format fmt( "%.3f " );
s << fmt % *( it );
str.append( s.str() );
}
// Remove last white space and return string
return str.substr( 0, str.length() - 1 );
}
我想知道是否可以以任何方式简化此代码。我最近一直在研究特别是 for_each 和仿函数的使用,但还没有弄清楚这些技术如何改进这个特定的例子。