mardi 23 mai 2017

C++: Is there a penalty in performance for re-accessing variables inside a hashmap of a hashmap?

Given the following:

std::unordered_map<int, std::unordered_map<int, Object>> m_map;

Is there a performance differences between:

Case 1:

int ref1 = 1;
int ref2 = 2;

m_map[ref1][ref2].var1 = something;
m_map[ref1][ref2].var2 = something;
m_map[ref1][ref2].var3 = something;
m_map[ref1][ref2].var4 = something;
...

Case 2:

auto map_ref = m_map[ref1][ref2];

map_ref.var1 = something;
map_ref.var2 = something;
map_ref.var3 = something;
map_ref.var4 = something;

What happens if you need to set a lot of parameters inside the object?

Aucun commentaire:

Enregistrer un commentaire