---
name: "__gnu_pbds::detail::left_child_next_sibling_heap"
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::detail::left_child_next_sibling_heap"
---

# \_\_gnu\_pbds::detail::left\_child\_next\_sibling\_heap(3)

Base class for a basic heap.

## NAME

\_\_gnu\_pbds::detail::left\_child\_next\_sibling\_heap\< Value\_Type, Cmp\_Fn, Node\_Metadata, \_Alloc \> - Base class for a basic heap.

## SYNOPSIS

\#include \<left\_child\_next\_sibling\_heap\_.hpp\>

Inherited by **\_\_gnu\_pbds::detail::pairing\_heap\< \_VTp, Cmp\_Fn, \_Alloc \>**, and **\_\_gnu\_pbds::detail::thin\_heap\< \_VTp, Cmp\_Fn, \_Alloc \>**.

### Public Types

typedef \_Alloc **allocator\_type**\
 typedef Cmp\_Fn **cmp\_fn**\
 typedef **left\_child\_next\_sibling\_heap\_const\_iterator\_**\< node, \_Alloc \> **const\_iterator**\
 typedef \_\_rebind\_v::const\_pointer **const\_pointer**\
 typedef \_\_rebind\_v::const\_reference **const\_reference**\
 typedef \_Alloc::difference\_type **difference\_type**\
 typedef const\_iterator **iterator**\
 typedef **left\_child\_next\_sibling\_heap\_node\_**\< Value\_Type, Node\_Metadata, \_Alloc \> **node**\
 typedef **left\_child\_next\_sibling\_heap\_node\_point\_const\_iterator\_**\< node, \_Alloc \> **point\_const\_iterator**\
 typedef point\_const\_iterator **point\_iterator**\
 typedef \_\_rebind\_v::pointer **pointer**\
 typedef \_\_rebind\_v::reference **reference**\
 typedef \_Alloc::size\_type **size\_type**\
 typedef Value\_Type **value\_type**\

### Public Member Functions

**left\_child\_next\_sibling\_heap** (const Cmp\_Fn &)\
 **left\_child\_next\_sibling\_heap** (const left\_child\_next\_sibling\_heap &)\
 iterator **begin** ()\
 const\_iterator **begin** () const\
 void **clear** ()\
 bool **empty** () const\
 iterator **end** ()\
 const\_iterator **end** () const\
 Cmp\_Fn & **get\_cmp\_fn** ()\
 const Cmp\_Fn & **get\_cmp\_fn** () const\
 size\_type **max\_size** () const\
 size\_type **size** () const\
 void **swap** (left\_child\_next\_sibling\_heap\< Value\_Type, Cmp\_Fn, Node\_Metadata, \_Alloc \> &)\

### Protected Types

typedef alloc\_traits::allocator\_type **node\_allocator**\
 typedef alloc\_traits::const\_pointer **node\_const\_pointer**\
 typedef Node\_Metadata **node\_metadata**\
 typedef alloc\_traits::pointer **node\_pointer**\
 typedef **std::pair**\< node\_pointer, node\_pointer \> **node\_pointer\_pair**\

### Protected Member Functions

void **actual\_erase\_node** (node\_pointer)\
 void **bubble\_to\_top** (node\_pointer)\
 void **clear\_imp** (node\_pointer)\
 node\_pointer **get\_new\_node\_for\_insert** (const\_reference)\
 template\<typename Pred\> node\_pointer **prune** (Pred)\
 void **swap\_with\_parent** (node\_pointer, node\_pointer)\
 void **to\_linked\_list** ()\
 void **value\_swap** (left\_child\_next\_sibling\_heap &)\

### Static Protected Member Functions

static void **make\_child\_of** (node\_pointer, node\_pointer)\
 static node\_pointer **parent** (node\_pointer)\

### Protected Attributes

node\_pointer **m\_p\_root**\
 size\_type **m\_size**\

## Detailed Description

### template\<typename Value\_Type, typename Cmp\_Fn, typename Node\_Metadata, typename \_Alloc\>

class \_\_gnu\_pbds::detail::left\_child\_next\_sibling\_heap\< Value\_Type, Cmp\_Fn, Node\_Metadata, \_Alloc \>"Base class for a basic heap.

## Author

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