Iterowanie nad unikalnymi elementami `std :: multiset`
Wszystko, czego potrzebuję, to wiedzieć, czy coś istnieje i ile razy ono istnieje. Powtórzę istniejące rzeczy i sprawdzę, ile z nich istnieje.
Moja realizacja jak dotąd wykorzystujemultiset
, Robię co następuje:
std::multiset<thing> a;
auto previous = a.end();
for( auto each = a.begin(); each != a.end(); ++each ) {
if( previous == a.end() || *previous != *each ) {
a.count(*each);
}
previous = each;
}
WyjaśnieniaMam wektorthing
s. Ale czasami powtarzają tę wartość, chcę iterować ponad unikalnething
s i dla każdego wyjątkowego zrób coś. To „coś” musi wiedzieć, ile czasu to zajmujething
pojawia się na wektorze.
Kod, który napisałem powyżej, pokazuje, jak teraz rozwiązuję mój problem, nie wydaje się być najbardziej eleganckim sposobem na robienie tego, co chcę.
Po prostu stosuję się do wytycznych Stackoverflow: mówię, jaki jest mój problem i mówię o moim (wypróbowanym) rozwiązaniu.
Jeśli zdanie ze znakiem zapytania jest naprawdę potrzebne, to idź: czy istnieje sposób na iterację unikalnych elementów nad amultiset
?