diff --git a/grouper.cpp b/grouper.cpp new file mode 100644 index 0000000..e69de29 diff --git a/grouper.h b/grouper.h new file mode 100644 index 0000000..c24095f --- /dev/null +++ b/grouper.h @@ -0,0 +1,26 @@ +#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; + } +};