libstdc++: __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc > Class Template Reference

libstdc++

__gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc > Class Template Reference
Extensions » Policy-Based Data Structures » Containers » Branch-Based

`#include <assoc_container.hpp>`

Inheritance diagram for __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >:
[legend]

## Public Types
typedef _ATraits | access_traits
typedef Node_Update | node_update

## Public Member Functions
| trie (const access_traits &t)
| trie (const trie &other)
template<typename It>
| trie (It first, It last)
template<typename It>
| trie (It first, It last, const access_traits &t)
trie & | operator= (const trie &other)
void | swap (trie &other)

## Detailed Description

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>
class __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >

A trie-based container.

Template Parameters

  Key | Key type.
  Mapped | Map type.
  _ATraits | Element access traits.
  Tag | Instantiating data structure type, see container_tag.
  Node_Update | Updates trie internal-nodes, restores invariants when invalidated. XXX See design::tree-based-containersnode invariants.
  _Alloc | Allocator type.

Base tag choice is pat_trie_tag.

Base is basic_branch.

Definition at line 731 of file assoc_container.hpp.

## Member Typedef Documentation

## ◆ access_traits

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>

typedef _ATraits __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::access_traits

Element access traits type.

Definition at line 738 of file assoc_container.hpp.

## ◆ node_update

template<typename Key, typename Mapped, typename Tag, typename Node_Update, typename Policy_Tl, typename _Alloc>

typedef Node_Update __gnu_pbds::basic_branch< Key, Mapped, Tag, Node_Update, Policy_Tl, _Alloc >::node_update
| inherited

Definition at line 561 of file assoc_container.hpp.

## Constructor & Destructor Documentation

## ◆ trie() [1/5]

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>

__gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::trie | ( |  | ) |
| inline

Definition at line 740 of file assoc_container.hpp.

## ◆ trie() [2/5]

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>

__gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::trie | ( | const access_traits & | t | ) |
| inline

Constructor taking some policy objects. r_access_traits will be copied by the _ATraits object of the container object.

Definition at line 744 of file assoc_container.hpp.

## ◆ trie() [3/5]

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>
template<typename It>

__gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::trie | ( | It | first,
|  | It | last )
| inline

Constructor taking __iterators to a range of value_types. The value_types between first_it and last_it will be inserted into the container object.

Definition at line 751 of file assoc_container.hpp.

## ◆ trie() [4/5]

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>
template<typename It>

__gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::trie | ( | It | first,
|  | It | last,
|  | const access_traits & | t )
| inline

Constructor taking __iterators to a range of value_types and some policy objects. The value_types between first_it and last_it will be inserted into the container object.

Definition at line 758 of file assoc_container.hpp.

## ◆ trie() [5/5]

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>

__gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::trie | ( | const trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc > & | other | ) |
| inline

Definition at line 762 of file assoc_container.hpp.

## ◆ ~trie()

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>

virtual __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::~trie | ( |  | ) |
| inlinevirtual

Definition at line 766 of file assoc_container.hpp.

## Member Function Documentation

## ◆ operator=()

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>

trie & __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::operator= | ( | const trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc > & | other | ) |
| inline

Definition at line 769 of file assoc_container.hpp.

## ◆ swap()

template<typename Key, typename Mapped, typename _ATraits = typename detail::default_trie_access_traits<Key>::type, typename Tag = pat_trie_tag, template< typename Node_CItr, typename Node_Itr, typename _ATraits_, typename _Alloc_ > class Node_Update = null_node_update, typename _Alloc = std::allocator<char>>

void __gnu_pbds::trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc >::swap | ( | trie< Key, Mapped, _ATraits, Tag, Node_Update, _Alloc > & | other | ) |
| inline

Definition at line 780 of file assoc_container.hpp.

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

- assoc_container.hpp