Obecnie mam dużo kodu, który wygląda tak:Jaki jest najszybszy sposób wstawiania/aktualizowania std :: unordered_map elementów bez użycia atrybutu if?
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));
}
Czy jest jakiś sposób mogę to przyspieszyć tylko przez nadpisanie wartości za każdym razem?
Wygląda należy użyć map – billz
@billz chcę O (1) czas wstawiania? Nie chcę drzewa O log (N) – user997112
[] to robi. http://www.cplusplus.com/reference/unordered_map/unordered_map/operator[]/ Oczywiście złożoność musi być liniowa. Jeśli chcesz mniej czasu na wstawienie, użyj mapy – janoliver