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 <map>
4#include <set>
5
7namespace ppforest2::utils {
14 template<typename K, typename V> std::map<V, std::set<K>> invert(std::map<K, V> const& map) {
15 std::map<V, std::set<K>> result;
16
17 for (auto const& [key, value] : map) {
18 result[value].insert(key);
19 }
20
21 return result;
22 }
23
30 template<typename K, typename V> std::set<K> keys(std::map<K, V> const& map) {
31 std::set<K> result;
32
33 for (auto const& [key, value] : map) {
34 result.insert(key);
35 }
36
37 return result;
38 }
39
46 template<typename K, typename V> std::set<V> values(std::map<K, V> const& map) {
47 std::set<V> result;
48
49 for (auto const& [key, value] : map) {
50 result.insert(value);
51 }
52
53 return result;
54 }
55}
Utility functions for std::map manipulation.
Definition Map.hpp:7
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:14
std::set< K > keys(std::map< K, V > const &map)
Extract all keys from a map as a set.
Definition Map.hpp:30
std::set< V > values(std::map< K, V > const &map)
Extract all values from a map as a set.
Definition Map.hpp:46