以下代码将 a 转换std::string
为 a boost::posix_time::ptime
。
在分析之后,我发现花在该函数上的大部分时间(大约 90%)都浪费在为time_input_facet
. 我不得不承认我不完全理解下面的代码,特别是为什么time_input_facet
必须在空闲内存上分配。
using boost::posix_time;
const ptime StringToPtime(const string &zeitstempel, const string &formatstring)
{
stringstream ss;
time_input_facet* input_facet = new time_input_facet();
ss.imbue(locale(ss.getloc(), input_facet));
input_facet->format(formatstring.c_str());
ss.str(zeitstempel);
ptime timestamp;
ss >> timestamp;
return timestamp;
}
你有什么办法摆脱分配吗?