【发布时间】:2013-10-05 12:27:00
【问题描述】:
我目前有很多如下代码:
std::unordered_map<int,int> my_dict;
.
.
.
// If the key does exist in the dictionary
if(my_dict.count(key) == 1){
my_dict[key] = value;
}
// If its a new key
else{
my_dict.insert(std::make_pair(key,value));
}
有什么方法可以通过每次覆盖值来加快速度?
【问题讨论】:
-
看来你应该使用地图
-
@billz 我想要 O(1) 插入时间?我不想要一棵树 O log(N)
-
[] 执行此操作。 cplusplus.com/reference/unordered_map/unordered_map/operator[] 当然,复杂度必须是线性的。如果您想要更少的插入时间,请使用地图
-
my_dict[key] = value;是你所需要的,如果需要,不需要。 -
@user997112 然后使用
(*my_dict_ptr)[key]或my_dict_ptr->operator[](key)。
标签: c++ performance unordered-map