#include "utils.h" template class Grouper { std::map, C> results; public: Grouper(C c) { results = std::map, C>(c); } void group(const std::function &map, const std::vector &values) { for(const V &v : values) { results[map(v)].push_back(&v); } } std::map, C> &getResults() { return this->results; } };