Nie rozumiem, dlaczego istnieje multimap, jeśli możemy utworzyć mapę wektorów lub mapę zbiorów. Dla mnie tylko różnice to:Jaka jest zaleta multimapy nad mapą wektorów?
- użyciu
equal_range
w multimapy uzyskania elementy klucza i na mapie wektorów używamy po prostu[]
operatora i mieć wektor elementów. - przy użyciu
multimap.insert(make_pair(key,value))
w multimapie do dodawania elementów imap_of_vectors[key].push_back(value)
na mapie wektorów.
Dlaczego warto korzystać z multimapy? Dla mnie lepiej jest mieć wektor niż dwa iteratory, aby uzyskać wszystkie wartości klucza.
To pytanie dotyczy także niepisanej mapy wektorów i nieuporządkowanej_multimy.
Muszę przyznać, że nigdy nie rozumiałem, do czego służy funkcja "multimap":/ –
Jestem trochę spóźniona, ale również multimapa zużywa o wiele więcej pamięci niż mapa wektorów dzięki dodatkowym wskaźnikom.Jedynym powodem, dla którego bym ich użył, jest to, że chcę zachować klucz każdego elementu (robi 'push_back', którego nie zatrzymasz) – Jcao02
Multimap jest świetny, jeśli chcesz nie tylko śledzić zduplikowane klucze o różnych wartościach, ale jednocześnie chcesz usunąć parę kluczy/wartości za jednym razem. Mapa wektorów nie jest do tego odpowiednia i chociaż można użyć mapy list, wygodniej jest po prostu użyć multimapy. – richizy