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

# std::back\_insert\_iterator(3cxx)

Turns assignment into insertion.

## NAME

std::back\_insert\_iterator\< \_Container \> - Turns assignment into insertion.

## SYNOPSIS

`#include <iterator>`

Inherits **std::iterator\< output\_iterator\_tag, void, void, void, void \>**.

### Public Types

**typedef** \_Container **container\_type**\
 A nested typedef for the type of whatever container you used.  **using** **difference\_type** = ptrdiff\_t\
 **typedef** **output\_iterator\_tag** **iterator\_category**\
 One of the **tag types**.  **typedef** **void** **pointer**\
 This type represents a pointer-to-value\_type.  **typedef** **void** **reference**\
 This type represents a reference-to-value\_type.  **typedef** **void** **value\_type**\
 The type 'pointed to' by the iterator.

### Public Member Functions

constexpr **back\_insert\_iterator** (\_Container &\_\_x)\
 The only way to create this iterator is with a container.  constexpr **back\_insert\_iterator** & **operator\*** ()\
 Simply returns \*this.  constexpr **back\_insert\_iterator** & **operator++** ()\
 Simply returns \*this. (This iterator does not *move*.)  constexpr **back\_insert\_iterator** **operator++** (int)\
 Simply returns \*this. (This iterator does not *move*.)  constexpr **back\_insert\_iterator** & **operator=** (const **typename** \_Container::value\_type &\_\_value)\
 constexpr **back\_insert\_iterator** & **operator=** (**typename** \_Container::value\_type &&\_\_value)\

### Protected Attributes

\_Container \* **container**\

## Detailed Description

### template\<typename \_Container\>

class std::back\_insert\_iterator\< \_Container \>"Turns assignment into insertion.

These are output iterators, constructed from a container-of-T. Assigning a T to the iterator appends it to the container using push\_back.

Tip: Using the back\_inserter function to create these iterators can save typing.

## Member Typedef Documentation

### template\<typename \_Container \> typedef \_Container std::back\_insert\_iterator\< \_Container \>::container\_type

A nested typedef for the type of whatever container you used.

### typedef output\_iterator\_tag std::iterator\< output\_iterator\_tag , void , void , void , void \>::iterator\_category` [inherited]`

One of the **tag types**.

### typedef void std::iterator\< output\_iterator\_tag , void , void , void , void \>::pointer` [inherited]`

This type represents a pointer-to-value\_type.

### typedef void std::iterator\< output\_iterator\_tag , void , void , void , void \>::reference` [inherited]`

This type represents a reference-to-value\_type.

### typedef void std::iterator\< output\_iterator\_tag , void , void , void , void \>::value\_type` [inherited]`

The type 'pointed to' by the iterator.

## Constructor & Destructor Documentation

### template\<typename \_Container \> constexpr std::back\_insert\_iterator\< \_Container \>::back\_insert\_iterator (\_Container & \_\_x)` [inline]`, ` [explicit]`, ` [constexpr]`

The only way to create this iterator is with a container.

## Member Function Documentation

### template\<typename \_Container \> constexpr back\_insert\_iterator & std::back\_insert\_iterator\< \_Container \>::operator\* ()` [inline]`, ` [constexpr]`

Simply returns \*this.

### template\<typename \_Container \> constexpr back\_insert\_iterator & std::back\_insert\_iterator\< \_Container \>::operator++ ()` [inline]`, ` [constexpr]`

Simply returns \*this. (This iterator does not *move*.)

### template\<typename \_Container \> constexpr back\_insert\_iterator std::back\_insert\_iterator\< \_Container \>::operator++ (int)` [inline]`, ` [constexpr]`

Simply returns \*this. (This iterator does not *move*.)

### template\<typename \_Container \> constexpr back\_insert\_iterator & std::back\_insert\_iterator\< \_Container \>::operator= (const typename \_Container::value\_type & \_\_value)` [inline]`, ` [constexpr]`

**Parameters**

*\_\_value* An instance of whatever type container\_type::const\_reference is; presumably a reference-to-const T for container\<T\>.

**Returns**

This iterator, for chained operations.

This kind of iterator doesn't really have a *position* in the container (you can think of the position as being permanently at the end, if you like). Assigning a value to the iterator will always append the value to the end of the container.

## Author

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