次のように、キーが文字列で、値が文字列のベクトルであるマップがあります
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);
}