다음을 통해 공유


<iterator>

미리 정의된 반복기 및 스트림 반복기, 반복기 기본 형식 및 지원 템플릿을 정의합니다.

요구 사항

머리글: <iterator>

네임스페이스: std

설명

반복기는 C++ 프로그램이 서로 다른 데이터 구조로 균일한 방식으로 작업할 수 있도록 하는 포인터의 일반화입니다. 알고리즘은 특정 데이터 형식에서 작동하는 대신 일종의 반복기로 지정된 값 범위에서 작동합니다. 알고리즘은 반복기의 요구 사항을 충족하는 모든 데이터 구조에서 작동할 수 있습니다.

C++20에는 6가지 범주의 반복기가 있습니다. 반복기는 기능 계층 구조로 정렬됩니다. 해당 기능은 C++20 개념에 의해 지정됩니다. 다양한 반복기 및 해당 기능에 대한 설명은 반복기 개념을 참조 하세요.

Visual Studio에서 C++ 표준 라이브러리 반복기에 확장을 추가하여 선택 및 선택되지 않은 반복기에 대한 디버깅을 지원합니다. 자세한 내용은 안전한 라이브러리: C++ 표준 라이브러리를 참조하세요.

멤버

함수

속성 설명
advance 지정된 위치 수만큼 반복기를 증가시킵니다.
back_inserter 지정된 컨테이너 뒤에 요소를 삽입할 수 있는 반복기를 만듭니다.
begin 지정된 컨테이너의 첫 번째 요소에 대한 반복기를 검색합니다.
cbegin 지정된 컨테이너의 첫 번째 요소에 대한 읽기 전용 반복기를 검색합니다.
cend 지정된 컨테이너의 마지막 요소 다음에 있는 요소에 대한 읽기 전용 반복기를 검색합니다.
crbegin 지정된 컨테이너의 시작 부분에 역방향 읽기 전용 반복기를 가져옵니다.
crend 반환되는 항목의 crbegin() 끝에 있는 sentinel을 가져옵니다.
data 지정된 컨테이너의 첫 번째 요소에 대한 포인터를 가져옵니다.
distance 두 반복기에 의해 주소가 지정된 위치 사이의 간격의 수를 결정합니다.
end 지정된 컨테이너에서 마지막 요소 다음의 요소에 대한 반복기를 검색합니다.
empty 지정된 컨테이너가 비어 있는지 테스트합니다.
front_inserter 지정된 컨테이너 앞에 요소를 삽입할 수 있는 반복기를 만듭니다.
inserter 지정된 삽입 지점에서 컨테이너에 새 요소를 추가하는 반복기 어댑터입니다.
make_checked_array_iterator 다른 알고리즘에서 checked_array_iterator 사용할 수 있는 API를 만듭니다. 참고: 이 함수는 C++ 표준 라이브러리의 Microsoft 확장입니다. 이 함수를 사용하여 구현된 코드는 이 Microsoft 확장을 지원하지 않는 C++ 표준 빌드 환경으로 이식할 수 없습니다.
make_move_iterator 제공된 반복기를 포함하는 이동 반복기를 저장된 기준 반복기로 반환합니다.
make_unchecked_array_iterator 다른 알고리즘에서 unchecked_array_iterator 사용할 수 있는 항목을 만듭니다. 참고: 이 함수는 C++ 표준 라이브러리의 Microsoft 확장입니다. 이 함수를 사용하여 구현된 코드는 이 Microsoft 확장을 지원하지 않는 C++ 표준 빌드 환경으로 이식할 수 없습니다.
next 지정된 횟수만큼 반복하고 새 반복기 위치를 반환합니다.
prev 역순으로 지정된 횟수만큼 반복하고 새 반복기 위치를 반환합니다.
rbegin 지정된 컨테이너의 시작 부분에 역방향 반복기를 가져옵니다.
rend 지정된 컨테이너의 끝에 있는 sentinel에 역방향 반복기를 가져옵니다.
size 요소 수를 가져옵니다.

연산자

속성 설명
operator!= 연산자의 왼쪽에 있는 반복기 개체가 오른쪽의 반복기 개체와 같지 않은지 테스트합니다.
operator== 연산자의 좌변에 있는 반복기 개체가 우변에 있는 반복기 개체와 같은지를 테스트합니다.
operator< 연산자의 좌변에 있는 반복기 개체가 우변에 있는 반복기 개체보다 작은지를 테스트합니다.
operator<= 연산자의 좌변에 있는 반복기 개체가 우변에 있는 반복기 개체보다 작거나 같은지를 테스트합니다.
operator> 연산자의 좌변에 있는 반복기 개체가 우변에 있는 반복기 개체보다 큰지를 테스트합니다.
operator>= 연산자의 좌변에 있는 반복기 개체가 우변에 있는 반복기 개체보다 크거나 같은지를 테스트합니다.
operator+ 반복기에 오프셋을 추가하고 새 오프셋 위치에서 삽입된 요소를 주소 지정하는 새 reverse_iterator를 반환합니다.
operator- 다른 반복기에서 하나의 반복기를 빼고 차이를 반환합니다.

클래스

이름 설명
back_insert_iterator 클래스 템플릿은 출력 반복기 개체를 설명합니다. 컨테이너라는 보호된 개체를 통해 액세스하는 형식 Container의 컨테이너에 pointer 요소를 삽입합니다.
bidirectional_iterator_tag 양방향 반복기를 나타내는 함수에 iterator_category 대한 반환 형식을 제공하는 클래스입니다.
checked_array_iterator 확인된 반복기인 임의 액세스를 사용하는 배열에 액세스하는 클래스입니다. 참고: 이 클래스는 C++ 표준 라이브러리의 Microsoft 확장입니다. 이 함수를 사용하여 구현된 코드는 이 Microsoft 확장을 지원하지 않는 C++ 표준 빌드 환경으로 이식할 수 없습니다.
forward_iterator_tag 앞으로 반복기를 나타내는 함수에 iterator_category 대한 반환 형식을 제공하는 클래스입니다.
front_insert_iterator 클래스 템플릿은 출력 반복기 개체를 설명합니다. 컨테이너라는 보호된 개체를 통해 액세스하는 형식 Container의 컨테이너에 pointer 요소를 삽입합니다.
input_iterator_tag 입력 반복기를 나타내는 함수에 iterator_category 대한 반환 형식을 제공하는 클래스입니다.
insert_iterator 클래스 템플릿은 출력 반복기 개체를 설명합니다. 컨테이너라는 보호된 개체를 통해 액세스하는 형식 Container의 컨테이너에 pointer 요소를 삽입합니다. 또한 클래스의 보호된 개체(Container::iterator호출iteriterator)도 저장합니다.
istream_iterator 클래스 템플릿은 입력 반복기 개체를 설명합니다. 저장한 개체를 통해 액세스하는 입력 스트림에서 클래스 Ty basic_istream<Elem, Tr>의 개체를 추출합니다.
istreambuf_iterator 클래스 템플릿은 입력 반복기 개체를 설명합니다. 클래스 Elem 의 요소를 출력 스트림 버퍼에 삽입합니다. 이 버퍼는 저장하는 개체를 통해 액세스하며 형식 pointer 은 다음과 같습니다 basic_streambuf<Elem, Tr>.
iterator 클래스 템플릿은 모든 반복기의 기본 형식으로 사용됩니다.
iterator_traits 다른 반복기 형식과 관련이 되어 같은 방식으로 참조되는 중요한 형식을 제공하는 템플릿 도우미 클래스입니다.
move_iterator 다음 move_iterator 개체는 RandomIterator 형식의 임의 액세스 반복기를 저장합니다. 역참조 되는 경우를 제외하고 임의 액세스 반복기처럼 동작합니다. 다음 operator* 결과는 value_type&&:을 만들기 위해 암시적으로 rvalue reference로 캐스팅됩니다.
ostream_iterator 클래스 템플릿은 출력 반복기 개체를 설명합니다. 클래스 Type 의 개체를 출력 스트림에 삽입합니다. 이 스트림은 저장하는 개체를 통해 액세스하며 형식 pointer 은 다음과 같습니다 basic_ostream<Elem, Tr>.
ostreambuf_iterator 클래스 템플릿은 출력 반복기 개체를 설명합니다. 클래스 Elem 의 요소를 출력 스트림 버퍼에 삽입합니다. 이 버퍼는 저장하는 개체, 형식 포인터를 통해 액세스합니다 basic_streambuf<Elem, Tr>.
output_iterator_tag 출력 반복기를 나타내는 함수에 대한 iterator_category 반환 형식을 제공하는 클래스입니다.
random_access_iterator_tag 임의 액세스 반복기를 나타내는 함수에 대한 iterator_category 반환 형식을 제공하는 클래스입니다.
reverse_iterator 클래스 템플릿은 임의 액세스 반복기처럼 동작하는 개체를 반대로만 설명합니다.
unchecked_array_iterator 확인되지 않은 반복기인 임의 액세스를 사용하는 배열에 액세스하는 클래스입니다. 참고: 이 클래스는 C++ 표준 라이브러리의 Microsoft 확장입니다. 이 함수를 사용하여 구현된 코드는 이 Microsoft 확장을 지원하지 않는 C++ 표준 빌드 환경으로 이식할 수 없습니다.

개념

다음 개념은 네임스페이 std 스에 정의되어 있습니다. 반복기에 적용되며 개념에 설명된 <ranges> 범위에 대한 반복기 범주와도 관련이 있습니다.

반복기 개념 설명
bidirectional_iteratorC++20 앞뒤로 읽고 쓸 수 있는 반복기를 지정합니다.
contiguous_iteratorC++20 요소가 메모리에서 순차적이고 크기가 같으며 포인터 산술 연산을 사용하여 액세스할 수 있는 반복기를 지정합니다.
forward_iteratorC++20 여러 번 읽고 쓸 수 있는 반복기를 지정합니다.
input_iteratorC++20 한 번 이상 읽을 수 있는 반복기를 지정합니다.
input_or_output_iteratorC++20 반복기 개념 분류의 기초입니다.
output_iterator 쓸 수 있는 반복기를 지정합니다.
random_access_iteratorC++20 인덱스로 읽고 쓸 수 있는 반복기를 지정합니다.
sentinel_forC++20 반복기 형식에 대한 sentinel을 지정합니다.
sized_sentinel_forC++20 반복기와 해당 sentinel을 빼서(사용 -) 일정한 시간에 차이를 찾을 수 있도록 지정합니다.

참고 항목

헤더 파일 참조
C++ 표준 라이브러리의 스레드 보안
C++ 표준 라이브러리 참조