0
我已經與密鑰作爲串和值的映射是一個字符串矢量如下最佳方式
std::map<std::string, std::vector<std::string> > keyTable;
我下面一段代碼,來解析值字符串並將它們存儲到地圖中。值由|分隔。我需要解析它們並將其作爲字符串的向量存儲到地圖中。
因此,我有下面這段代碼。在速度和效率方面是否有更好的解決方案?
keyTable.insert(key, std::vector<std::string>());
std::vector<std::string>& valueVect = keyTable[key];
boost::tokenizer tokens(str , "|");
for (boost::tokenizer::iterator tok_iter = tokens.begin() ; tok_iter != tokens.end() ; ++tok_iter)
{
valueVect.push_back(*tok_iter);
}
'的boost :: algorithm'擁有的東西,將給你一個指向每個令牌的指針,而不是一個副本,但我不記得它的名字。或者,您可以'emplace_back'以避免複製到容器中。 –
編譯器的版本和名稱? C++ 11支持?有一些明顯的改進。 – Yakk
Visual C++ - Visual 2010 – user373215