Namespaces
Variants

std::back_insert_iterator

출처: ko.cppreference.net
 
 
반복자 라이브러리
반복자 개념
반복자 기본 요소
알고리즘 개념 및 유틸리티
간접 호출 가능 개념
공통 알고리즘 요구사항
(C++20)
(C++20)
(C++20)
유틸리티
(C++20)
반복자 어댑터
범위 접근
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
헤더에 정의됨 <iterator>
template< class Container >
class back_insert_iterator
    : public std::iterator<std::output_iterator_tag, void, void, void, void>
(C++17까지)
template< class Container >
class back_insert_iterator;
(C++17부터)

std::back_insert_iterator는 LegacyOutputIterator로서, 생성될 때 주어진 컨테이너에 요소를 추가합니다. 반복자(역참조 여부와 관계없이)에 값을 대입할 때마다 컨테이너의 push_back() 멤버 함수가 호출됩니다. std::back_insert_iterator를 증가시키는 것은 아무 작업도 수행하지 않습니다.

멤버 타입

멤버 타입 정의
iterator_category std:: output_iterator_tag
value_type void
difference_type

void

(C++20 이전)

std::ptrdiff_t

(C++20 이후)
pointer void
reference void
container_type Container

멤버 타입 iterator_category , value_type , difference_type , pointer 및 reference 는 std:: iterator < std:: output_iterator_tag , void , void , void , void > 로부터 상속받아 얻어야 합니다.

(C++17 이전)

멤버 함수

새로운 back_insert_iterator 를 생성합니다
(public member function)
연결된 컨테이너에 객체를 삽입합니다
(public member function)
아무 작업도 수행하지 않음
(public member function)
아무 작업도 수행하지 않음
(public member function)

멤버 객체

멤버 이름 정의
container (protected) Container* 타입의 포인터

예제

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
    std::vector<int> v;
    std::generate_n(
        std::back_insert_iterator<std::vector<int>>(v),
            // 또는 std::back_inserter 헬퍼 사용
            // 또는 C++17 문법인 std::back_insert_iterator(v) 사용
        10,
        [n = 0]() mutable { return ++n; }
    );
    for (int n : v)
        std::cout << n << ' ';
    std::cout << '\n';
}

출력:

1 2 3 4 5 6 7 8 9 10

참고 항목

인수에서 추론된 타입의 std::back_insert_iterator 를 생성함
(함수 템플릿)
컨테이너의 앞쪽에 삽입하기 위한 반복자 어댑터
(클래스 템플릿)
컨테이너에 삽입하기 위한 반복자 어댑터
(클래스 템플릿)