ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
Map.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4#include <map>
5#include <set>
6
8namespace ppforest2::utils {
15 template<typename K, typename V> std::map<V, std::set<K>> invert(std::map<K, V> const& map) {
16 std::map<V, std::set<K>> result;
17
18 for (auto const& [key, value] : map) {
19 result[value].insert(key);
20 }
21
22 return result;
23 }
24
31 template<typename K, typename V> std::set<K> keys(std::map<K, V> const& map) {
32 std::set<K> result;
33
34 for (auto const& [key, value] : map) {
35 result.insert(key);
36 }
37
38 return result;
39 }
40
47 template<typename K, typename V> std::set<V> values(std::map<K, V> const& map) {
48 std::set<V> result;
49
50 for (auto const& [key, value] : map) {
51 result.insert(value);
52 }
53
54 return result;
55 }
56}
Utility functions for std::map manipulation.
Definition Map.hpp:8
std::map< V, std::set< K > > invert(std::map< K, V > const &map)
Invert a map: values become keys, original keys are grouped into sets.
Definition Map.hpp:15
std::set< K > keys(std::map< K, V > const &map)
Extract all keys from a map as a set.
Definition Map.hpp:31
std::set< V > values(std::map< K, V > const &map)
Extract all values from a map as a set.
Definition Map.hpp:47