---
name: "__gnu_pbds"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/__gnu_pbds"
---

# \_\_gnu\_pbds(3)

GNU extensions for policy-based data structures for public use.

## NAME

\_\_gnu\_pbds - GNU extensions for policy-based data structures for public use.

## SYNOPSIS

### Classes

struct **associative\_tag**\
 Basic associative-container.  class **basic\_branch**\
 struct **basic\_branch\_tag**\
 Basic branch structure.  class **basic\_hash\_table**\
 struct **basic\_hash\_tag**\
 Basic hash structure.  struct **basic\_invalidation\_guarantee**\
 struct **binary\_heap\_tag**\
 Binary-heap (array-based).  struct **binomial\_heap\_tag**\
 Binomial-heap.  class **cc\_hash\_max\_collision\_check\_resize\_trigger**\
 A resize trigger policy based on collision checks. It keeps the simulated load factor lower than some given load factor.  class **cc\_hash\_table**\
 struct **cc\_hash\_tag**\
 Collision-chaining hash.  struct **container\_error**\
 Base class for exceptions.  struct **container\_tag**\
 Base data structure tag.  struct **container\_traits**\
 Container traits.  struct **container\_traits\_base**\
 Primary template, container traits base.  struct **container\_traits\_base\< binary\_heap\_tag \>**\
 Specialization, binary heap.  struct **container\_traits\_base\< binomial\_heap\_tag \>**\
 Specialization, binomial heap.  struct **container\_traits\_base\< cc\_hash\_tag \>**\
 Specialization, cc hash.  struct **container\_traits\_base\< gp\_hash\_tag \>**\
 Specialization, gp hash.  struct **container\_traits\_base\< list\_update\_tag \>**\
 Specialization, list update.  struct **container\_traits\_base\< ov\_tree\_tag \>**\
 Specialization, ov tree.  struct **container\_traits\_base\< pairing\_heap\_tag \>**\
 Specialization, pairing heap.  struct **container\_traits\_base\< pat\_trie\_tag \>**\
 Specialization, pat trie.  struct **container\_traits\_base\< rb\_tree\_tag \>**\
 Specialization, rb tree.  struct **container\_traits\_base\< rc\_binomial\_heap\_tag \>**\
 Specialization, rc binomial heap.  struct **container\_traits\_base\< splay\_tree\_tag \>**\
 Specialization, splay tree.  struct **container\_traits\_base\< thin\_heap\_tag \>**\
 Specialization, thin heap.  class **direct\_mask\_range\_hashing**\
 A mask range-hashing class (uses a bitmask).  class **direct\_mod\_range\_hashing**\
 A mod range-hashing class (uses the modulo function).  class **gp\_hash\_table**\
 struct **gp\_hash\_tag**\
 General-probing hash.  class **hash\_exponential\_size\_policy**\
 A size policy whose sequence of sizes form an exponential sequence (typically powers of 2.  class **hash\_load\_check\_resize\_trigger**\
 A resize trigger policy based on a load check. It keeps the load factor between some load factors load\_min and load\_max.  class **hash\_prime\_size\_policy**\
 A size policy whose sequence of sizes form a nearly-exponential sequence of primes.  class **hash\_standard\_resize\_policy**\
 A resize policy which delegates operations to size and trigger policies.  struct **insert\_error**\
 An entry cannot be inserted into a container object for logical reasons (not, e.g., if memory is unabvailable, in which case the allocator\_type's exception will be thrown).  struct **join\_error**\
 A join cannot be performed logical reasons (i.e., the ranges of the two container objects being joined overlaps.  class **linear\_probe\_fn**\
 A probe sequence policy using fixed increments.  class **list\_update**\
 struct **list\_update\_tag**\
 List-update.  class **lu\_counter\_policy**\
 class **lu\_move\_to\_front\_policy**\
 struct **null\_node\_update**\
 A null node updator, indicating that no node updates are required.  struct **null\_type**\
 Represents no type, or absence of type, for template tricks.  struct **ov\_tree\_tag**\
 Ordered-vector tree.  struct **pairing\_heap\_tag**\
 Pairing-heap.  struct **pat\_trie\_tag**\
 PATRICIA trie.  struct **point\_invalidation\_guarantee**\
 class **priority\_queue**\
 struct **priority\_queue\_tag**\
 Basic priority-queue.  class **quadratic\_probe\_fn**\
 A probe sequence policy using square increments.  struct **range\_invalidation\_guarantee**\
 struct **rb\_tree\_tag**\
 Red-black tree.  struct **rc\_binomial\_heap\_tag**\
 Redundant-counter binomial-heap.  struct **resize\_error**\
 A container cannot be resized.  class **sample\_probe\_fn**\
 A sample probe policy.  class **sample\_range\_hashing**\
 A sample range-hashing functor.  class **sample\_ranged\_hash\_fn**\
 A sample ranged-hash functor.  class **sample\_ranged\_probe\_fn**\
 A sample ranged-probe functor.  class **sample\_resize\_policy**\
 A sample resize policy.  class **sample\_resize\_trigger**\
 A sample resize trigger policy.  class **sample\_size\_policy**\
 A sample size policy.  class **sample\_tree\_node\_update**\
 A sample node updator.  struct **sample\_trie\_access\_traits**\
 A sample trie element access traits.  class **sample\_trie\_node\_update**\
 A sample node updator.  struct **sample\_update\_policy**\
 A sample list-update policy.  struct **sequence\_tag**\
 Basic sequence.  struct **splay\_tree\_tag**\
 Splay tree.  struct **string\_tag**\
 Basic string container, inclusive of strings, ropes, etc.  struct **thin\_heap\_tag**\
 Thin heap.  class **tree**\
 class **tree\_order\_statistics\_node\_update**\
 Functor updating ranks of entrees.  struct **tree\_tag**\
 Basic tree structure.  class **trie**\
 class **trie\_order\_statistics\_node\_update**\
 Functor updating ranks of entrees.  class **trie\_prefix\_search\_node\_update**\
 A node updator that allows tries to be searched for the range of values that match a certain prefix.  struct **trie\_string\_access\_traits**\
 struct **trie\_tag**\
 Basic trie structure.  struct **trivial\_iterator\_tag**\
 A trivial iterator tag. Signifies that the iterators has none of std::iterators's movement abilities.

### Typedefs

typedef void **trivial\_iterator\_difference\_type**\
 Prohibit moving trivial iterators.

### Functions

void **\_\_throw\_container\_error** ()\
 void **\_\_throw\_insert\_error** ()\
 void **\_\_throw\_join\_error** ()\
 void **\_\_throw\_resize\_error** ()\

### Variables

template\<typename String, typename String::value\_type Min\_E\_Val, typename String::value\_type Max\_E\_Val, bool Reverse, typename \_Alloc\> detail::integral\_constant\< int, Reverse \> **trie\_string\_access\_traits\< String, Min\_E\_Val, Max\_E\_Val, Reverse, \_Alloc \>::s\_rev\_ind**\

## Detailed Description

GNU extensions for policy-based data structures for public use.

## Author

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