Vector Iterator 란 무엇입니까?
벡터 반복기는 프로그램이 벡터라고하는 특수 컬렉션에 포함 된 데이터 값을 읽을 수 있도록하는 컴퓨터 언어 구성입니다. 벡터는 배열 및 목록과 유사한 관련 데이터 값을 그룹화하는 데 사용되는 객체입니다. 많은 다른 컴퓨터 언어, 특히 Java 및 C ++에는 벡터와 관련 반복기가 포함되어 있습니다. 각 언어는 반복자에 대해 서로 다른 구문을 사용하지만 모든 언어의 기본 메커니즘은 벡터 그룹의 각 가능한 멤버에 대한 개별 액세스입니다.
반복자를 사용하여 벡터를 이동하는 것을 종종 트래버 싱 또는 반복이라고합니다. 벡터 반복자를 사용하여 벡터 컬렉션에서 특정 객체를 명시 적으로 식별 할 수도 있습니다. 이 식별이 수행되면 객체 자체의 특성이 아닌 벡터의 색인으로 객체가 식별됩니다. 반복자가 역 참조되면 객체에 대한 작업을 수행하여 프로그램이 벡터가 아닌 객체에 명시 적으로 액세스 할 수 있습니다.
벡터 반복자는 배열을 반복하는 동안 발생할 수있는 범위를 벗어난 오류가 발생할 가능성이 거의 없습니다. 비록 벡터는 해체 될 때 본질적으로 영화 롭게 배열되지만, 벡터는 거의 항상 벡터 반복자가 적절한 인덱스를 유지하도록하는 어떤 유형의 경계 점검을 갖는다. 벡터를 순회 할 때 반복자가 올바르게 호출되면 항상 벡터의 시작에서 시작하여 정확히 끝에서 끝납니다. 특정 상황에서는 잘못된 인덱스의 명시 적 지정이 여전히 가능하지만 반복자를 변환하는 벡터의 기본 제공 경계 검사는 범위 초과 오버플로 문제를 방지합니다.
C ++에서 반복자에 의해 순회되는 동안 벡터를 수정할 수 있지만 Java는이를 명시 적으로 금지합니다. 이터레이터에서 이동하는 동안 벡터를 변경하면 이터레이터가 실수로 벡터 외부를 읽을 수 있기 때문에이 상황에서 Java의 조치는 훨씬 더 안전합니다. 반복하는 동안 벡터에서 항목을 추가하거나 제거하는 것은 특히 위험합니다. 특히 벡터가 포함해야하는 시작 및 끝 인덱스가 하드 코딩되어있는 경우에 특히 그렇습니다. 벡터 반복기는 벡터의 갑작스러운 변화를 처리 할 수 없으며, 벡터는 순회하는 동안 상대적으로 정적입니다.
벡터 반복자는 암시 적이거나 명시적일 수 있으며 구문 형식 중 하나가 순회를 순조롭게 진행합니다. 효율로 코딩되었지만, 벡터 반복기는 매우 큰 벡터에 의해 느려질 수 있습니다. 이 경우 벡터의 끝 인덱스를 하드 코딩하면 순회 속도가 빨라집니다. 이 문제는 작은 벡터에서는 발생하지 않으므로 종료 인덱스를 하드 코딩해도 속도가 크게 향상되지 않습니다. 종료 인덱스를 하드 코딩하면 오버플로의 위험이 높아질 수 있으므로 일반적으로 드물게 수행해야합니다.