|
| rbtree (const key_equal &keyEq) |
|
| rbtree (const allocator_type &allocator) |
|
AZ_FORCE_INLINE | rbtree (const key_equal &keyEq, const allocator_type &allocator) |
|
| rbtree (const this_type &rhs) |
|
| rbtree (const this_type &rhs, const allocator_type &allocator) |
|
this_type & | operator= (const this_type &rhs) |
|
AZ_FORCE_INLINE key_equal | key_comp () const |
|
AZ_FORCE_INLINE iterator | begin () |
|
AZ_FORCE_INLINE const_iterator | begin () const |
|
AZ_FORCE_INLINE iterator | end () |
|
AZ_FORCE_INLINE const_iterator | end () const |
|
AZ_FORCE_INLINE reverse_iterator | rbegin () |
|
AZ_FORCE_INLINE const_reverse_iterator | rbegin () const |
|
AZ_FORCE_INLINE reverse_iterator | rend () |
|
AZ_FORCE_INLINE const_reverse_iterator | rend () const |
|
AZ_FORCE_INLINE bool | empty () const |
|
AZ_FORCE_INLINE size_type | size () const |
|
AZ_FORCE_INLINE size_type | max_size () const |
|
| rbtree (this_type &&rhs) |
|
| rbtree (this_type &&rhs, const allocator_type &allocator) |
|
this_type & | operator= (this_type &&rhs) |
|
AZStd::pair< iterator, bool > | insert_unique (value_type &&value) |
|
iterator | insert_unique (const_iterator insertPos, value_type &&value) |
|
iterator | insert_equal (value_type &&value) |
|
template<class ... InputArguments> |
AZStd::pair< iterator, bool > | emplace_unique (InputArguments &&... arguments) |
|
template<class ... InputArguments> |
iterator | emplace_unique (const_iterator insertPos, InputArguments &&... arguments) |
|
template<class ... InputArguments> |
iterator | emplace_equal (InputArguments &&... arguments) |
|
template<class ... InputArguments> |
iterator | emplace_equal (const_iterator insertPos, InputArguments &&... arguments) |
|
void | swap (this_type &rhs) |
|
AZStd::pair< iterator, bool > | insert_unique (const value_type &value) |
|
iterator | insert_equal (const value_type &value) |
|
iterator | insert_unique (const_iterator insertPos, const value_type &value) |
|
iterator | insert_equal (const iterator insertPos, const value_type &value) |
|
template<class Iterator > |
AZ_FORCE_INLINE void | insert_equal (Iterator first, Iterator last) |
|
template<class Iterator > |
AZ_FORCE_INLINE void | insert_unique (Iterator first, Iterator last) |
|
template<typename ComparableToKey , typename... Args> |
AZStd::pair< iterator, bool > | try_emplace_unique (ComparableToKey &&key, Args &&... arguments) |
|
template<typename ComparableToKey , typename... Args> |
iterator | try_emplace_unique (const_iterator hint, ComparableToKey &&key, Args &&... arguments) |
|
template<typename ComparableToKey , typename MappedType > |
AZStd::pair< iterator, bool > | insert_or_assign_unique (ComparableToKey &&key, MappedType &&value) |
|
template<typename ComparableToKey , typename MappedType > |
iterator | insert_or_assign_unique (const_iterator hint, ComparableToKey &&key, MappedType &&value) |
|
template<class InsertReturnType , class NodeHandle > |
InsertReturnType | node_handle_insert_unique (NodeHandle &&nodeHandle) |
|
template<class NodeHandle > |
auto | node_handle_insert_unique (const_iterator hint, NodeHandle &&nodeHandle) -> iterator |
|
template<class NodeHandle > |
auto | node_handle_insert_equal (NodeHandle &&nodeHandle) -> iterator |
|
template<class NodeHandle > |
auto | node_handle_insert_equal (const_iterator hint, NodeHandle &&nodeHandle) -> iterator |
|
template<class NodeHandle > |
NodeHandle | node_handle_extract (const key_type &key) |
|
template<class NodeHandle > |
NodeHandle | node_handle_extract (const_iterator it) |
|
iterator | erase (const_iterator erasePos) |
|
size_type | erase (const key_type &key) |
|
bool | erase_unique (const key_type &key) |
|
iterator | erase (const_iterator first, const_iterator last) |
|
AZ_FORCE_INLINE void | erase (const key_type *first, const key_type *last) |
|
AZ_FORCE_INLINE void | clear () |
|
template<class ComparableToKey > |
auto | find (const ComparableToKey &key) -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, iterator > |
|
template<class ComparableToKey > |
auto | find (const ComparableToKey &key) const -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, const_iterator > |
|
template<class ComparableToKey > |
auto | contains (const ComparableToKey &key) const -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, bool > |
|
template<class ComparableToKey > |
auto | lower_bound (const ComparableToKey &key) -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, iterator > |
|
template<class ComparableToKey > |
auto | lower_bound (const ComparableToKey &key) const -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, const_iterator > |
|
template<class ComparableToKey > |
auto | upper_bound (const ComparableToKey &key) -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, iterator > |
|
template<class ComparableToKey > |
auto | upper_bound (const ComparableToKey &key) const -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, const_iterator > |
|
template<class ComparableToKey > |
auto | count (const ComparableToKey &key) const -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, size_type > |
|
template<class ComparableToKey > |
auto | equal_range (const ComparableToKey &key) -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, AZStd::pair< iterator, iterator >> |
|
template<class ComparableToKey > |
auto | equal_range (const ComparableToKey &key) const -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, AZStd::pair< const_iterator, const_iterator >> |
|
template<class ComparableToKey > |
auto | equal_range_unique (const ComparableToKey &key) -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, AZStd::pair< iterator, iterator >> |
|
template<class ComparableToKey > |
auto | equal_range_unique (const ComparableToKey &key) const -> enable_if_t< Internal::is_transparent< key_equal, ComparableToKey >::value||AZStd::is_convertible_v< ComparableToKey, key_type >, AZStd::pair< const_iterator, const_iterator >> |
|
template<typename ComparableToKey , typename... Args> |
auto | try_emplace_unique (ComparableToKey &&key, Args &&... arguments) -> AZStd::pair< iterator, bool > |
|
template<typename ComparableToKey , typename... Args> |
auto | try_emplace_unique (const_iterator hint, ComparableToKey &&key, Args &&... arguments) -> iterator |
|
template<typename ComparableToKey , typename MappedType > |
auto | insert_or_assign_unique (ComparableToKey &&key, MappedType &&value) -> AZStd::pair< iterator, bool > |
|
template<typename ComparableToKey , typename MappedType > |
auto | insert_or_assign_unique (const_iterator hint, ComparableToKey &&key, MappedType &&value) -> iterator |
|
|
|
allocator_type & | get_allocator () |
|
const allocator_type & | get_allocator () const |
|
void | set_allocator (const allocator_type &allocator) |
| Set the vector allocator. If different than then current all elements will be reallocated.
|
|
bool | validate () const |
|
int | validate_iterator (const const_iterator &iter) const |
| Validates an iter iterator. Returns a combination of iterator_status_flag.
|
|
int | validate_iterator (const iterator &iter) const |
|
void | leak_and_reset () |
|
template<class Traits>
class AZStd::rbtree< Traits >
Generic red-black tree. Based on the STLport implementation. In addition to all AZStd extensions and requirements, we use compressed node which saves about ~25% of the tree overhead. This is the base container used for AZStd::set,AZStd::multiset,AZStd::map and AZStd::multimap.
RedBlackTreeTest for examples.
Traits should have the following members typedef xxx key_type; typedef xxx key_equal; typedef xxx value_type; typedef xxx allocator_type; enum { has_multi_elements = true or false, is_dynamic = true or false, // true if we have fixed container. If we do so we will need to se fixed_num_buckets and fixed_num_elements. }
static inline const key_type& key_from_value(const value_type& value);