<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 호출iter 됨iterator )도 저장합니다. |
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_iterator C++20 |
앞뒤로 읽고 쓸 수 있는 반복기를 지정합니다. |
contiguous_iterator C++20 |
요소가 메모리에서 순차적이고 크기가 같으며 포인터 산술 연산을 사용하여 액세스할 수 있는 반복기를 지정합니다. |
forward_iterator C++20 |
여러 번 읽고 쓸 수 있는 반복기를 지정합니다. |
input_iterator C++20 |
한 번 이상 읽을 수 있는 반복기를 지정합니다. |
input_or_output_iterator C++20 |
반복기 개념 분류의 기초입니다. |
output_iterator |
쓸 수 있는 반복기를 지정합니다. |
random_access_iterator C++20 |
인덱스로 읽고 쓸 수 있는 반복기를 지정합니다. |
sentinel_for C++20 |
반복기 형식에 대한 sentinel을 지정합니다. |
sized_sentinel_for C++20 |
반복기와 해당 sentinel을 빼서(사용 - ) 일정한 시간에 차이를 찾을 수 있도록 지정합니다. |