Блог пользователя andpar

Автор andpar, история, 2 года назад, По-английски

I am trying to solve Educational Round 115 Problem C by storing number of occurrences in the map. My submission works with MSVC https://codeforces.com/contest/1598/submission/133072945 but doesn't work with GCC https://codeforces.com/contest/1598/submission/133071532. I can't repro it locally so I can't debug it but adding check for non-existing values https://codeforces.com/contest/1598/submission/133073553 fixes the problem.

So it looks like that for missing integer values operator[] for unordered_map instead of returning 0 (default initialized value), returns uninitialized value which looks really weird. Am I missing something here?

  • Проголосовать: нравится
  • +8
  • Проголосовать: не нравится

»
2 года назад, # |
  Проголосовать: нравится +22 Проголосовать: не нравится

If you add elements into the unordered map, then the iterator may get invalidated if rehash occurs. Thus, the order of iteration through the elements will be violated. See here for details.