【发布时间】:2016-09-25 06:54:04
【问题描述】:
我有嵌套类型的地图:
std::map<int,std::map<pointer,pointer>>
我每次/每帧都在迭代地图并对其进行更新。所以基本上我有 2 个嵌套的 if 循环。 我有一个数组,我需要使用 2 个属性对数据进行排序。第一个属性是整数,它是第一个键,然后第二个属性是一个指针,它是主映射内嵌套映射的键。所以我的代码是这样的:
iterator = outermap.find();
if(iterator!=outermap.end()){
value = iterator->second;
it1 = value.find();
if(it1!=value.end(){
value1 = it1->second;
// do something
}
else{
// do something and add new value
}
}
else {
// do something and add the values
}
这真的很慢,导致我的应用程序丢帧。有没有其他选择?我们可以使用哈希码和链表来实现吗?
【问题讨论】:
-
你能再解释一下你的场景吗?遍历地图不需要
ifs。有多少元素?您需要订购它们吗? minimal reproducible example? -
@Mat 如果您需要更多信息,请告诉我。
标签: c++ hash stl linked-list