---
name: "__gnu_pbds::detail::pat_trie_base__Node_iter"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/__gnu_pbds::detail::pat_trie_base__Node_iter/3cxx"
---

# \_\_gnu\_pbds::detail::pat\_trie\_base\_\_Node\_iter(3cxx)

Node iterator.

## NAME

\_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_iter\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \> - Node iterator.

## SYNOPSIS

`#include <pat_trie_base.hpp>`

Inherits **\_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>**.

### Public Types

typedef value\_type **const\_reference**\
 typedef **trivial\_iterator\_difference\_type** **difference\_type**\
 typedef **trivial\_iterator\_tag** **iterator\_category**\
 typedef **rebind\_traits**\< \_Alloc, **metadata\_type** \>::const\_reference **metadata\_const\_reference**\
 Const metadata reference type.  typedef Node::metadata\_type **metadata\_type**\
 Metadata type.  typedef value\_type **reference**\
 typedef base\_type::size\_type **size\_type**\
 typedef Iterator **value\_type**\

### Public Member Functions

**\_Node\_iter** (node\_pointer p\_nd=0, a\_const\_pointer p\_traits=0)\
 **\_Node\_iter** **get\_child** (size\_type i) const\
 Returns a node \_\_iterator to the corresponding node's i-th child.  **metadata\_const\_reference** **get\_metadata** () const\
 Metadata access.  size\_type **num\_children** () const\
 Returns the number of children in the corresponding node.  bool **operator!=** (const **\_Node\_citer** &other) const\
 Compares content (negatively) to a different iterator object.  reference **operator\*** () const\
 Access; returns the iterator\* associated with the current leaf.  bool **operator==** (const **\_Node\_citer** &other) const\
 Compares content to a different iterator object.  **std::pair**\< a\_const\_iterator, a\_const\_iterator \> **valid\_prefix** () const\
 Subtree valid prefix.

### Public Attributes

node\_pointer **m\_p\_nd**\
 a\_const\_pointer **m\_p\_traits**\

### Protected Types

typedef Node::a\_const\_iterator **a\_const\_iterator**\
 typedef **rebind\_traits**\< \_Alloc, Inode \>::const\_pointer **inode\_const\_pointer**\
 typedef **rebind\_traits**\< \_Alloc, Leaf \>::const\_pointer **leaf\_const\_pointer**\
 typedef **rebind\_traits**\< \_Alloc, Leaf \>::pointer **leaf\_pointer**\

## Detailed Description

### template\<typename Node, typename Leaf, typename Head, typename Inode, typename \_CIterator, typename Iterator, typename \_Alloc\>

class \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_iter\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>"Node iterator.

## Member Typedef Documentation

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> typedef rebind\_traits\<\_Alloc,metadata\_type\>::const\_reference \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::metadata\_const\_reference` [inherited]`

Const metadata reference type.

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> typedef Node::metadata\_type \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::metadata\_type` [inherited]`

Metadata type.

## Member Function Documentation

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> \_Node\_iter \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_iter\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::get\_child (size\_type i) const` [inline]`

Returns a node \_\_iterator to the corresponding node's i-th child.

References **std::advance()**.

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> metadata\_const\_reference \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::get\_metadata () const` [inline]`, ` [inherited]`

Metadata access.

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> size\_type \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::num\_children () const` [inline]`, ` [inherited]`

Returns the number of children in the corresponding node.

References **std::distance()**.

Referenced by **\_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::operator\*()**, and **\_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_iter\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::operator\*()**.

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> bool \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::operator!= (const \_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \> & other) const` [inline]`, ` [inherited]`

Compares content (negatively) to a different iterator object.

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> reference \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_iter\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::operator\* () const` [inline]`

Access; returns the iterator\* associated with the current leaf.

References **\_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::num\_children()**.

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> bool \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::operator== (const \_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \> & other) const` [inline]`, ` [inherited]`

Compares content to a different iterator object.

### template\<typename Node , typename Leaf , typename Head , typename Inode , typename \_CIterator , typename Iterator , typename \_Alloc \> std::pair\< a\_const\_iterator, a\_const\_iterator \> \_\_gnu\_pbds::detail::pat\_trie\_base::\_Node\_citer\< Node, Leaf, Head, Inode, \_CIterator, Iterator, \_Alloc \>::valid\_prefix () const` [inline]`, ` [inherited]`

Subtree valid prefix.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
