From e217218a3fe934f831f9e4ee97d542fc4eab6347 Mon Sep 17 00:00:00 2001 From: Albert S Date: Sun, 3 Apr 2022 11:05:13 +0200 Subject: [PATCH] Add Grouper: Maps a key to a vectors --- grouper.cpp | 0 grouper.h | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 grouper.cpp create mode 100644 grouper.h 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; + } +};