A std::unordered_set
that compares its elements (of type Value) based on their Projection. It allows to create, essentially, an equivalent of std::unordered_map
where keys are stored inside values.
Definition in file projected_set.hpp.
Go to the source code of this file.
#include <functional>
#include <set>
#include <type_traits>
#include <unordered_set>
Namespaces | |
namespace | utils |
Utilities. | |
Typedefs | |
template<typename Value , auto Projection, typename Hash = void, typename Equal = std::equal_to<>, typename Allocator = std::allocator<Value>> | |
using | utils::ProjectedUnorderedSet |
A std::unordered_set that compares its elements (of type Value) based on their Projection. It allows to create, essentially, an equivalent of std::unordered_map where keys are stored inside values. | |
template<typename Value , auto Projection, typename Compare = std::less<>, typename Allocator = std::allocator<Value>> | |
using | utils::ProjectedSet = std::set<Value, impl::projected_set::Compare<Value, Projection, Compare>, Allocator> |
Same as ProjectedUnorderedSet, but for std::set . | |
Functions | |
template<typename Container , typename Value > | |
void | utils::ProjectedInsertOrAssign (Container &set, Value &&value) |
An equivalent of std::unordered_map::insert_or_assign for utils::ProjectedUnorderedSet and utils::ProjectedSet. | |