• English

vector iterator 예제

삽입 이터레이터를 사용하면 컨테이너의 일부 위치를 “가리키고” 요소를 삽입할 수 있습니다. 역참조 및 할당만 으로 이 작업을 수행합니다: 아래 예제에서 사용할 알고리즘인 copy() 예제는 컨테이너에서 데이터를 “읽는”데만 사용할 수 있기 때문에 입력 이터레이터라고 합니다. 당신은 데이터를 저장하는 데 사용할 수 없습니다, 즉, 그것은 당신이 쓸 수있는 통별자처럼 보일 수 있습니다, 에서 읽지, 포고에서 반 안정 곰으로 분별에 관한 것입니다 누가 쓸 수 있지만 그가 쓴 것을 읽을 수 없습니다. 그러나 OutputIterator의 두 가지 매우 유용한 하위 클래스가 있습니다 : 이것은 이터레이터가 가리키는 위치에 값을 삽입합니다. 다시 할당하면 새 값이 삽입됩니다. 값이 이전 값의 앞이나 이후에 이동하는지 여부는 만든 삽입 연산자의 종류에 따라 달라집니다. 거침없이 증분할 필요가 없습니다. 당신은 할당을 계속합니다. 거리터: ++로 증분하고 *로 역참조하고 !=를 가진 다른 거점과 비교할 수 있는 포인터와 같은 개체입니다.

벡터의 저장소는 필요에 따라 확장 및 축소되어 자동으로 처리됩니다. 벡터는 일반적으로 정적 배열보다 더 많은 공간을 차지합니다. 이렇게 하면 요소가 삽입될 때마다 벡터를 다시 배치할 필요가 없지만 추가 메모리가 소진된 경우에만 다시 할당할 수 있습니다. 할당된 메모리의 총 양은 capacity() 함수를 사용하여 쿼리할 수 있습니다. 추가 메모리는 shrink_to_fit()에 대한 호출을 통해 시스템에 반환될 수 있습니다. (이후 C ++11) 4. next() :- 이 함수는 인수에 언급된 위치를 진행한 후 이리터레이터가 가리키는 새 이터레이터를 반환합니다. 출력 이터레이터는 저장용입니다. 어떤 것이 더 이상 출력 거이기가 아니라면 *iter로 읽을 수 없으며 == 및 !=로 테스트할 수도 없습니다.

이터레이터는 begin() 및 end()와 같은 STL 컨테이너 멤버 함수에 의해 생성됩니다. 일부 컨테이너는 위의 작업만 지원하는 이터레이터를 반환하고 다른 컨테이너는 <와 비교할 수 있는 이터레이터를 반환합니다. 참고: 저장된 이터레이터는 기본 컨테이너가 수정되지 않은 경우에만 유효합니다.