---
name: "__gnu_cxx::slist"
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_cxx::slist/3cxx"
---

# \_\_gnu\_cxx::slist(3cxx)

## NAME

\_\_gnu\_cxx::slist\< \_Tp, \_Alloc \>

## SYNOPSIS

`#include <slist>`

Inherits \_\_gnu\_cxx::\_Slist\_base\< \_Tp, \_Alloc \>.

### Public Types

typedef \_Base::allocator\_type **allocator\_type**\
 typedef \_Slist\_iterator\< \_Tp, const \_Tp &, const \_Tp \* \> **const\_iterator**\
 typedef const value\_type \* **const\_pointer**\
 typedef const value\_type & **const\_reference**\
 typedef std::ptrdiff\_t **difference\_type**\
 typedef \_Slist\_iterator\< \_Tp, \_Tp &, \_Tp \* \> **iterator**\
 typedef value\_type \* **pointer**\
 typedef value\_type & **reference**\
 typedef std::size\_t **size\_type**\
 typedef \_Tp **value\_type**\

### Public Member Functions

template\<class \_InputIterator \> **slist** (\_InputIterator \_\_first, \_InputIterator \_\_last, const allocator\_type &\_\_a=allocator\_type())\
 **slist** (const allocator\_type &\_\_a=allocator\_type())\
 **slist** (const **slist** &\_\_x)\
 **slist** (size\_type \_\_n)\
 **slist** (size\_type \_\_n, const value\_type &\_\_x, const allocator\_type &\_\_a=allocator\_type())\
 template\<class \_InputIterator \> void **\_M\_assign\_dispatch** (\_InputIterator \_\_first, \_InputIterator \_\_last, std::\_\_false\_type)\
 template\<class \_Integer \> void **\_M\_assign\_dispatch** (\_Integer \_\_n, \_Integer \_\_val, std::\_\_true\_type)\
 void **\_M\_fill\_assign** (size\_type \_\_n, const \_Tp &\_\_val)\
 template\<class \_InputIterator \> void **assign** (\_InputIterator \_\_first, \_InputIterator \_\_last)\
 void **assign** (size\_type \_\_n, const \_Tp &\_\_val)\
 iterator **before\_begin** ()\
 const\_iterator **before\_begin** () const\
 iterator **begin** ()\
 const\_iterator **begin** () const\
 void **clear** ()\
 bool **empty** () const\
 iterator **end** ()\
 const\_iterator **end** () const\
 iterator **erase** (iterator \_\_first, iterator \_\_last)\
 iterator **erase** (iterator \_\_pos)\
 iterator **erase\_after** (iterator \_\_before\_first, iterator \_\_last)\
 iterator **erase\_after** (iterator \_\_pos)\
 reference **front** ()\
 const\_reference **front** () const\
 allocator\_type **get\_allocator** () const\
 iterator **insert** (iterator \_\_pos)\
 template\<class \_InIterator \> void **insert** (iterator \_\_pos, \_InIterator \_\_first, \_InIterator \_\_last)\
 iterator **insert** (iterator \_\_pos, const value\_type &\_\_x)\
 void **insert** (iterator \_\_pos, size\_type \_\_n, const value\_type &\_\_x)\
 iterator **insert\_after** (iterator \_\_pos)\
 template\<class \_InIterator \> void **insert\_after** (iterator \_\_pos, \_InIterator \_\_first, \_InIterator \_\_last)\
 iterator **insert\_after** (iterator \_\_pos, const value\_type &\_\_x)\
 void **insert\_after** (iterator \_\_pos, size\_type \_\_n, const value\_type &\_\_x)\
 size\_type **max\_size** () const\
 template\<class \_StrictWeakOrdering \> void **merge** (**slist** &, \_StrictWeakOrdering)\
 void **merge** (**slist** &\_\_x)\
 template\<class \_StrictWeakOrdering \> void **merge** (**slist**\< \_Tp, \_Alloc \> &\_\_x, \_StrictWeakOrdering \_\_comp)\
 **slist** & **operator=** (const **slist** &\_\_x)\
 void **pop\_front** ()\
 iterator **previous** (const\_iterator \_\_pos)\
 const\_iterator **previous** (const\_iterator \_\_pos) const\
 void **push\_front** ()\
 void **push\_front** (const value\_type &\_\_x)\
 void **remove** (const \_Tp &\_\_val)\
 template\<class \_Predicate \> void **remove\_if** (\_Predicate \_\_pred)\
 void **resize** (size\_type new\_size)\
 void **resize** (size\_type new\_size, const \_Tp &\_\_x)\
 void **reverse** ()\
 size\_type **size** () const\
 void **sort** ()\
 template\<class \_StrictWeakOrdering \> void **sort** (\_StrictWeakOrdering \_\_comp)\
 void **splice** (iterator \_\_pos, **slist** &\_\_x)\
 void **splice** (iterator \_\_pos, **slist** &\_\_x, iterator \_\_first, iterator \_\_last)\
 void **splice** (iterator \_\_pos, **slist** &\_\_x, iterator \_\_i)\
 void **splice\_after** (iterator \_\_pos, iterator \_\_before\_first, iterator \_\_before\_last)\
 void **splice\_after** (iterator \_\_pos, iterator \_\_prev)\
 void **splice\_after** (iterator \_\_pos, **slist** &\_\_x)\
 void **swap** (**slist** &\_\_x)\
 void **unique** ()\
 template\<class \_BinaryPredicate \> void **unique** (\_BinaryPredicate \_\_pred)\

## Detailed Description

### template\<class \_Tp, class \_Alloc = std::allocator\<\_Tp\>\>

class \_\_gnu\_cxx::slist\< \_Tp, \_Alloc \>"This is an SGI extension.

**Todo**

Needs documentation! See http://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation\_style.html

## Author

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