C/C++ API Reference
Loading...
Searching...
No Matches
pw::containers::FlatMap< Key, Value, kArraySize > Class Template Reference

Overview

template<typename Key, typename Value, size_t kArraySize>
class pw::containers::FlatMap< Key, Value, kArraySize >

A simple, fixed-size associative array with lookup by key or value.

FlatMaps can be initialized by:

embed:rst:leading-asterisk
 
*  .. literalinclude:: examples/flat_map.cc
*     :language: cpp
*     :linenos:
*     :start-after: [pw_containers-flat_map]
*     :end-before: [pw_containers-flat_map]
*  

The keys do not need to be sorted as the constructor will sort the items if need be.

Classes

class  mapped_iterator
 

Public Types

using key_type = Key
 
using mapped_type = Value
 
using value_type = Pair< key_type, mapped_type >
 
using pointer = value_type *
 
using reference = value_type &
 
using size_type = size_t
 
using difference_type = ptrdiff_t
 
using container_type = typename std::array< value_type, kArraySize >
 
using iterator = typename container_type::iterator
 
using const_iterator = typename container_type::const_iterator
 

Public Member Functions

constexpr FlatMap (const std::array< value_type, kArraySize > &items)
 
constexpr FlatMap (std::array< value_type, kArraySize > &&items)
 
template<typename... Items, typename = std::enable_if_t< std::conjunction_v<std::is_same<Items, value_type>...>>>
constexpr FlatMap (const Items &... items)
 
 FlatMap (FlatMap &)=delete
 
FlatMapoperator= (FlatMap &)=delete
 
constexpr size_type size () const
 
constexpr size_type empty () const
 
constexpr size_type max_size () const
 
constexpr mapped_type & at (const key_type &key)
 
constexpr const mapped_type & at (const key_type &key) const
 
constexpr bool contains (const key_type &key) const
 
constexpr const_iterator find (const key_type &key) const
 
constexpr const_iterator lower_bound (const key_type &key) const
 
constexpr const_iterator upper_bound (const key_type &key) const
 
constexpr std::pair< const_iterator, const_iterator > equal_range (const key_type &key) const
 
constexpr const_iterator begin () const
 
constexpr const_iterator cbegin () const
 
constexpr const_iterator end () const
 
constexpr const_iterator cend () const
 
constexpr mapped_iterator mapped_begin ()
 
constexpr mapped_iterator mapped_end ()
 

The documentation for this class was generated from the following file: