我必须像这样转换 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 万个元素,每个集合也可以包含多达 10000 个元素。这是我在空间浪费和时间方面找到的最佳解决方案;有没有更好的方法来完成这项工作?