---
name: "std::__debug::vector"
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/std::__debug::vector"
---

# std::\_\_debug::vector(3)

Class std::vector with safety/checking/debug instrumentation.

## NAME

std::\_\_debug::vector\< \_Tp, \_Allocator \> - Class std::vector with safety/checking/debug instrumentation.

## SYNOPSIS

\#include \<vector\>

Inherits **\_\_gnu\_debug::\_Safe\_container\< \_SafeContainer, \_Alloc, \_SafeBase, \_IsCxx11AllocatorAware \>**, and .

Inherited by **std::\_\_debug::vector\< \_Tp, std::allocator\< \_Tp \> \>**.

### Public Types

typedef \_Allocator **allocator\_type**\
 typedef **\_\_gnu\_debug::\_Safe\_iterator**\< \_Base\_const\_iterator, vector \> **const\_iterator**\
 typedef \_Base::const\_pointer **const\_pointer**\
 typedef \_Base::const\_reference **const\_reference**\
 typedef **std::reverse\_iterator**\< const\_iterator \> **const\_reverse\_iterator**\
 typedef \_Base::difference\_type **difference\_type**\
 typedef **\_\_gnu\_debug::\_Safe\_iterator**\< \_Base\_iterator, vector \> **iterator**\
 typedef \_Base::pointer **pointer**\
 typedef \_Base::reference **reference**\
 typedef **std::reverse\_iterator**\< iterator \> **reverse\_iterator**\
 typedef \_Base::size\_type **size\_type**\
 typedef \_Tp **value\_type**\

### Public Member Functions

constexpr **vector** (\_Base\_ref \_\_x)\
 Construction from a normal-mode vector.  template\<class \_InputIterator, typename = std::\_RequireInputIter\<\_InputIterator\>\> constexpr **vector** (\_InputIterator \_\_first, \_InputIterator \_\_last, const \_Allocator &\_\_a=\_Allocator())\
 constexpr **vector** (const \_Allocator &\_\_a) noexcept\
 **vector** (const vector &)=default\
 constexpr **vector** (const vector &\_\_x, const \_\_type\_identity\_t\< allocator\_type \> &\_\_a)\
 constexpr **vector** (**initializer\_list**\< value\_type \> \_\_l, const allocator\_type &\_\_a=allocator\_type())\
 constexpr **vector** (size\_type \_\_n, const \_\_type\_identity\_t\< \_Tp \> &\_\_value, const \_Allocator &\_\_a=\_Allocator())\
 constexpr **vector** (size\_type \_\_n, const \_Allocator &\_\_a=\_Allocator())\
 **vector** (vector &&)=default\
 constexpr **vector** (vector &&\_\_x, const \_\_type\_identity\_t\< allocator\_type \> &\_\_a) noexcept(**std::is\_nothrow\_constructible**\< \_Base, \_Base, const allocator\_type & \>::value)\
 constexpr const \_Base & **\_M\_base** () const noexcept\
 constexpr \_Base & **\_M\_base** () noexcept\
 template\<typename \_InputIterator, typename = std::\_RequireInputIter\<\_InputIterator\>\> constexpr void **assign** (\_InputIterator \_\_first, \_InputIterator \_\_last)\
 constexpr void **assign** (**initializer\_list**\< value\_type \> \_\_l)\
 constexpr void **assign** (size\_type \_\_n, const \_Tp &\_\_u)\
 constexpr const\_reference **back** () const noexcept\
 constexpr reference **back** () noexcept\
 constexpr const\_iterator **begin** () const noexcept\
 constexpr iterator **begin** () noexcept\
 constexpr size\_type **capacity** () const noexcept\
 constexpr const\_iterator **cbegin** () const noexcept\
 constexpr const\_iterator **cend** () const noexcept\
 constexpr void **clear** () noexcept\
 constexpr const\_reverse\_iterator **crbegin** () const noexcept\
 constexpr const\_reverse\_iterator **crend** () const noexcept\
 template\<typename... \_Args\> constexpr iterator **emplace** (const\_iterator \_\_position, \_Args &&... \_\_args)\
 template\<typename... \_Args\> constexpr reference **emplace\_back** (\_Args &&... \_\_args)\
 constexpr const\_iterator **end** () const noexcept\
 constexpr iterator **end** () noexcept\
 constexpr iterator **erase** (const\_iterator \_\_first, const\_iterator \_\_last)\
 constexpr iterator **erase** (const\_iterator \_\_position)\
 constexpr const\_reference **front** () const noexcept\
 constexpr reference **front** () noexcept\
 template\<class \_InputIterator, typename = std::\_RequireInputIter\<\_InputIterator\>\> constexpr iterator **insert** (const\_iterator \_\_position, \_InputIterator \_\_first, \_InputIterator \_\_last)\
 template\<typename \_Up = \_Tp\> constexpr \_\_gnu\_cxx::\_\_enable\_if\<!std::\_\_are\_same\< \_Up, bool \>::\_\_value, iterator \>::\_\_type **insert** (const\_iterator \_\_position, \_Tp &&\_\_x)\
 constexpr iterator **insert** (const\_iterator \_\_position, const \_Tp &\_\_x)\
 constexpr iterator **insert** (const\_iterator \_\_position, **initializer\_list**\< value\_type \> \_\_l)\
 constexpr iterator **insert** (const\_iterator \_\_position, size\_type \_\_n, const \_Tp &\_\_x)\
 vector & **operator=** (const vector &)=default\
 constexpr vector & **operator=** (**initializer\_list**\< value\_type \> \_\_l)\
 vector & **operator=** (vector &&)=default\
 constexpr const\_reference **operator\[\]** (size\_type \_\_n) const noexcept\
 constexpr reference **operator\[\]** (size\_type \_\_n) noexcept\
 constexpr void **pop\_back** () noexcept\
 template\<typename \_Up = \_Tp\> constexpr \_\_gnu\_cxx::\_\_enable\_if\<!std::\_\_are\_same\< \_Up, bool \>::\_\_value, void \>::\_\_type **push\_back** (\_Tp &&\_\_x)\
 constexpr void **push\_back** (const \_Tp &\_\_x)\
 constexpr const\_reverse\_iterator **rbegin** () const noexcept\
 constexpr reverse\_iterator **rbegin** () noexcept\
 constexpr const\_reverse\_iterator **rend** () const noexcept\
 constexpr reverse\_iterator **rend** () noexcept\
 constexpr void **reserve** (size\_type \_\_n)\
 constexpr void **resize** (size\_type \_\_sz)\
 constexpr void **resize** (size\_type \_\_sz, const \_Tp &\_\_c)\
 constexpr void **shrink\_to\_fit** ()\
 constexpr void **swap** (vector &\_\_x) noexcept(/\***conditional** \*/)\

### Protected Member Functions

bool **\_M\_requires\_reallocation** (size\_type \_\_elements) const noexcept\
 constexpr void **\_M\_swap** (const \_Safe\_container &\_\_x) const noexcept\
 constexpr void **\_M\_update\_guaranteed\_capacity** () noexcept\

### Protected Attributes

size\_type **\_M\_guaranteed\_capacity**\

### Friends

template\<typename \_ItT, typename \_SeqT, typename \_CatT\> class **::\_\_gnu\_debug::\_Safe\_iterator**\

## Detailed Description

### template\<typename \_Tp, typename \_Allocator = std::allocator\<\_Tp\>\>

class std::\_\_debug::vector\< \_Tp, \_Allocator \>"Class std::vector with safety/checking/debug instrumentation.

## Constructor & Destructor Documentation

### template\<typename \_Tp, typename \_Allocator = std::allocator\<\_Tp\>\> std::\_\_debug::vector\< \_Tp, \_Allocator \>::vector (\_Base\_ref \_\_x) \[inline\], \[constexpr\]

Construction from a normal-mode vector.

## Author

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