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;
18 for (
auto const& [key, value] : map) {
19 result[value].insert(key);
31 template<
typename K,
typename V> std::set<K>
keys(std::map<K, V>
const& map) {
34 for (
auto const& [key, value] : map) {
47 template<
typename K,
typename V> std::set<V>
values(std::map<K, V>
const& map) {
50 for (
auto const& [key, value] : map) {
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