Multimap zasadniczo zawiera grupy danych posortowane według klucza. Chcę mieć metodę, dzięki której mógłbym uzyskać dostęp do tych pojedynczych grup i uzyskać ich zagregowane wartości. Na przykład, w std::multimap< string, int >
przechowywaćstl :: multimap - jak uzyskać grupy danych?
{"Group1", 1},
{"Group1", 2},
{"Group1", 3},
{"Group2", 10},
{"Group2", 11},
{"Group2", 12}
Po przechowywane te wartości powinny być w stanie iteracyjne tej multimap i uzyskać łączne wartości każdego „grupy”. Problem polega na tym, że nie ma żadnych funkcji zdefiniowanych w STL, aby uzyskać dostęp do MultiMaps w taki sposób. Mogę użyć lower_bound
, upper_bound
do ręcznego iterowania multimapy i sumowania zawartości grupy, ale mam nadzieję, że mogą być lepsze sposoby już zdefiniowane w STL? Czy ktoś może zaproponować rozwiązanie, w jaki sposób mogę uzyskać zagregowane wartości dla grupy w powyższym przykładzie.
Bardzo elegancki i Metoda lambda opisana tutaj: http://stackoverflow.com/a/37680747/5516759 –