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;
17 for (
auto const& [key, value] : map) {
18 result[value].insert(key);
30 template<
typename K,
typename V> std::set<K>
keys(std::map<K, V>
const& map) {
33 for (
auto const& [key, value] : map) {
46 template<
typename K,
typename V> std::set<V>
values(std::map<K, V>
const& map) {
49 for (
auto const& [key, value] : map) {
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