Ustalono, że std::unordered_set
i std::unordered_map
ma zakres erase(first, last)
, co moim zdaniem jest kolejnym dobrym sposobem na strzelanie sobie w nogi.Jaki jest prawdziwy przypadek użycia w przypadku wymazywania według std :: unordered_ (set | map)?
Może ktoś zna rzeczywiste przypadki użycia tej funkcji?
Czy może to być uznane za zły projekt?
Wymazywanie na podstawie zakresu jest częścią ogólnych wymagań nieuporządkowanego kontenera i jest łatwe do dostarczenia i wdrożenia. Przypuszczam, że trudniej byłoby jawnie * usunąć * to przeciążenie z map unikatowego klucza, niż po prostu go zostawić, nawet jeśli nie jest to zbyt użyteczne. Zauważysz, że tak naprawdę nie jest wspomniany w sekcjach dotyczących nieuporządkowanej mapy i zestawu. –
Jestem skłonny zaakceptować ten komentarz jako poprawną odpowiedź, ale nie mogę – acc15