|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Random-access proxy iterator over (key, value) entries.
More...
#include <tpl_flat_map.H>
Classes | |
| struct | pointer |
Proxy returned by operator->, keeps the reference alive. More... | |
| struct | reference |
Proxy returned by operator*: references into the parallel arrays. More... | |
Public Types | |
| using | iterator_category = std::random_access_iterator_tag |
| Category. | |
| using | value_type = std::pair< Key, T > |
| Materialized entry type. | |
| using | difference_type = std::ptrdiff_t |
| Signed distance type. | |
Public Member Functions | |
| basic_iterator ()=default | |
| Construct a singular iterator. | |
| basic_iterator (const Key *k, VPtr v) noexcept | |
| Construct from parallel key/value cursors (internal use). | |
| template<bool B> requires (IsConst and not B) | |
| basic_iterator (const basic_iterator< B > &it) noexcept | |
| Convert a mutable iterator into a const iterator. | |
| const Key * | key_ptr () const noexcept |
| Cursor into the key array (internal use). | |
| VPtr | val_ptr () const noexcept |
| Cursor into the value array (internal use). | |
| reference | operator* () const noexcept |
Dereference to the (key, value) proxy. | |
| pointer | operator-> () const noexcept |
Member access through the proxy (e.g. it->second). | |
| reference | operator[] (difference_type i) const noexcept |
Proxy for the entry i positions away. | |
| basic_iterator & | operator++ () noexcept |
| Pre-increment. | |
| basic_iterator | operator++ (int) noexcept |
| Post-increment. | |
| basic_iterator & | operator-- () noexcept |
| Pre-decrement. | |
| basic_iterator | operator-- (int) noexcept |
| Post-decrement. | |
| basic_iterator & | operator+= (difference_type i) noexcept |
Advance by i positions. | |
| basic_iterator & | operator-= (difference_type i) noexcept |
Retreat by i positions. | |
| basic_iterator | operator+ (difference_type i) const noexcept |
Iterator i positions forward. | |
| basic_iterator | operator- (difference_type i) const noexcept |
Iterator i positions backward. | |
| difference_type | operator- (const basic_iterator &it) const noexcept |
| Signed distance between iterators. | |
| bool | operator== (const basic_iterator &it) const noexcept |
| Equality: same position. | |
| bool | operator!= (const basic_iterator &it) const noexcept |
| Inequality: different position. | |
| bool | operator< (const basic_iterator &it) const noexcept |
| Strict ordering by position. | |
| bool | operator<= (const basic_iterator &it) const noexcept |
| Ordering by position. | |
| bool | operator> (const basic_iterator &it) const noexcept |
| Strict ordering by position. | |
| bool | operator>= (const basic_iterator &it) const noexcept |
| Ordering by position. | |
Private Types | |
| using | VPtr = std::conditional_t< IsConst, const T *, T * > |
Private Attributes | |
| const Key * | k_ = nullptr |
| VPtr | v_ = nullptr |
Random-access proxy iterator over (key, value) entries.
Dereferencing yields a proxy with public members first (const Key &) and second (T & when IsConst == false, const T & otherwise), matching the access model of C++23 std::flat_map. The proxy is a value: bind it with auto, not auto & (e.g. for (auto [k, v] : m)).
| IsConst | Whether the iterator provides const access to values. |
Definition at line 272 of file tpl_flat_map.H.
| using Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::difference_type = std::ptrdiff_t |
Signed distance type.
Definition at line 300 of file tpl_flat_map.H.
| using Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::iterator_category = std::random_access_iterator_tag |
Category.
Definition at line 298 of file tpl_flat_map.H.
| using Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::value_type = std::pair<Key, T> |
Materialized entry type.
Definition at line 299 of file tpl_flat_map.H.
|
private |
Definition at line 274 of file tpl_flat_map.H.
|
default |
Construct a singular iterator.
|
inlinenoexcept |
Construct from parallel key/value cursors (internal use).
Definition at line 306 of file tpl_flat_map.H.
|
inlinenoexcept |
Convert a mutable iterator into a const iterator.
Definition at line 310 of file tpl_flat_map.H.
|
inlinenoexcept |
Cursor into the key array (internal use).
Definition at line 314 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_.
Referenced by Aleph::FlatMap< Key, T, Compare >::erase(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator!=(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator-(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator<(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator<=(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator==(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator>(), and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator>=().
|
inlinenoexcept |
Inequality: different position.
Definition at line 416 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::key_ptr().
|
inlinenoexcept |
Dereference to the (key, value) proxy.
Definition at line 326 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::v_.
|
inlinenoexcept |
Iterator i positions forward.
Definition at line 390 of file tpl_flat_map.H.
References Aleph::blossom_maximum_cardinality_matching().
|
inlinenoexcept |
Pre-increment.
Definition at line 344 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::v_.
|
inlinenoexcept |
Post-increment.
Definition at line 352 of file tpl_flat_map.H.
References Aleph::blossom_maximum_cardinality_matching().
|
inlinenoexcept |
Advance by i positions.
Definition at line 376 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::v_.
|
inlinenoexcept |
Signed distance between iterators.
Definition at line 404 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::key_ptr().
|
inlinenoexcept |
Iterator i positions backward.
Definition at line 397 of file tpl_flat_map.H.
References Aleph::blossom_maximum_cardinality_matching().
|
inlinenoexcept |
Pre-decrement.
Definition at line 360 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::v_.
|
inlinenoexcept |
Post-decrement.
Definition at line 368 of file tpl_flat_map.H.
References Aleph::blossom_maximum_cardinality_matching().
|
inlinenoexcept |
Retreat by i positions.
Definition at line 384 of file tpl_flat_map.H.
|
inlinenoexcept |
Member access through the proxy (e.g. it->second).
Definition at line 332 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::v_.
|
inlinenoexcept |
Strict ordering by position.
Definition at line 422 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::key_ptr().
|
inlinenoexcept |
Ordering by position.
Definition at line 428 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::key_ptr().
|
inlinenoexcept |
Equality: same position.
Definition at line 410 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::key_ptr().
|
inlinenoexcept |
Strict ordering by position.
Definition at line 434 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::key_ptr().
|
inlinenoexcept |
Ordering by position.
Definition at line 440 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::key_ptr().
|
inlinenoexcept |
Proxy for the entry i positions away.
Definition at line 338 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::k_, and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::v_.
|
inlinenoexcept |
Cursor into the value array (internal use).
Definition at line 320 of file tpl_flat_map.H.
References Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::v_.
|
private |
Definition at line 276 of file tpl_flat_map.H.
Referenced by Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::key_ptr(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator!=(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator*(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator++(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator+=(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator-(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator--(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator->(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator<(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator<=(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator==(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator>(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator>=(), and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator[]().
|
private |
Definition at line 277 of file tpl_flat_map.H.
Referenced by Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator*(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator++(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator+=(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator--(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator->(), Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::operator[](), and Aleph::FlatMap< Key, T, Compare >::basic_iterator< IsConst >::val_ptr().