| 
| 
  | 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);