次のように std::map を変換する必要があります。
std::map<int, std::set<int> > t_contents;
このようなマップで:
std::map<int, std::vector<int> > seq;
私はこの方法で変換を行っています:
std::map<int, std::set<int> >::const_iterator it;
for(it = t_contents.begin(); it != t_contents.end(); ++it)
{
std::move((*it).second.begin(), (*it).second.end(),
std::back_inserter(seq[(*it).first])
);
}
マップには最大 100 万の要素が含まれ、各セットには最大 1 万の要素も含まれることを考慮してください。これは、スペースの浪費と時間の点で私が見つけた最良の解決策です。この作業を行うためのより良い方法はありますか?