Namespaces
Variants

std::front_insert_iterator

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 front_insert_iterator
    : public std::iterator<std::output_iterator_tag, void, void, void, void>
에 정의됨 (C++17까지)
template< class Container >
class front_insert_iterator;
(C++17부터)

std::front_insert_iterator는 LegacyOutputIterator로, 생성 시 제공된 컨테이너의 앞에 요소를 추가합니다. 반복자(역참조 여부와 관계없음)에 값이 할당될 때마다 컨테이너의 push_front() 멤버 함수가 호출됩니다. std::front_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 이전)

멤버 함수

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

멤버 객체

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

예제

#include <algorithm>
#include <deque>
#include <iostream>
#include <iterator>
#include <vector>
namespace stb
{
    void println(auto, auto const& d)
    {
        std::ranges::copy(d, std::ostream_iterator<int>(std::cout, " "));
        std::cout << '\n';
    }
}
int main()
{
    std::vector<int> v{1, 2, 3, 4, 5};
    std::deque<int> d;
    std::copy(v.begin(), v.end(),
              std::front_insert_iterator<std::deque<int>>(d));
              // or std::front_inserter(d)
    stb::println("{}", d);
}

출력:

5 4 3 2 1

참고 항목

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