벡터 반복자 란 무엇입니까?
벡터 반복자는 프로그램이 벡터라는 특수 컬렉션에 포함 된 데이터 값을 읽을 수있는 컴퓨터 언어 구성입니다. 벡터는 배열 및 목록과 유사한 관련 데이터 값을 그룹화하는 데 사용되는 객체입니다. 많은 다른 컴퓨터 언어, 특히 Java 및 C ++에는 벡터 및 관련 반복자가 포함되어 있습니다. 각 언어는 반복자에 대해 다른 구문을 사용하지만 모든 언어의 기본 메커니즘은 벡터 그룹의 가능한 각 구성원에 대한 개별 액세스입니다.
반복기를 사용하여 벡터를 통해 이동하는 것을 종종 트래버 싱 또는 반복이라고합니다. 벡터 반복자를 사용하여 벡터 수집에서 특정 객체를 명시 적으로 식별 할 수도 있습니다. 이 식별이 수행되면 객체는 객체 자체의 어떤 특성이 아니라 벡터의 인덱스로 식별됩니다. 반복자가 불쾌감을 느끼면 객체에서 동작을 수행 할 수 있으며 프로그램에 벡터가 아닌 객체에 대한 명시 적 액세스 권한을 부여합니다.
벡터 반복자는 배열 위로 반복하는 동안 발생할 수있는 경계 오류를 만날 가능성이 거의 없습니다. 벡터는 해체 될 때 본질적으로 영광스러운 배열이지만, 벡터는 거의 항상 벡터 반복기가 적절한 지수로 유지되도록하는 일부 유형의 경계 검사를 가지고 있습니다. 벡터를 통과 할 때 반복기는 올바르게 호출되면 항상 벡터의 시작 부분에서 시작하여 정확히 끝에서 끝납니다. 특정 상황에서는 잘못된 색인의 명시 적 사양이 여전히 가능하지만 반복자로 변환되는 벡터의 내장 경계 검사는 범위 오버플로 문제를 방지합니다.
C ++에서 벡터는 반복자에 의해 통과하는 동안 수정 될 수 있지만, Java는 이런 일이 발생하지 않도록 명시 적으로 금지합니다. 이 상황에서 Java의 행동은 반복자가 움직이는 동안 벡터를 변경하면 반복자 T가 발생할 수 있기 때문에 훨씬 더 안전합니다.o 실수로 벡터 외부를 읽습니다. 반복하는 동안 벡터에서 항목을 추가하거나 제거하려고 시도하는 것은 특히 위험합니다. 특히 시작 및 종료 지수가 벡터가 덮어야하는 경우 하드 코딩 된 경우. 벡터 반복자는 벡터의 갑작스런 변화를 처리 할 수있는 장비가 없으며 벡터는 가로 지르는 동안 비교적 정적입니다.
벡터 반복기는 암시 적이거나 명시적일 수 있으며, 구문 형태는 트래버스를 부드럽게 실행합니다. 효율로 코딩 되었음에도 불구하고 벡터 반복기는 매우 큰 벡터에 의해 느려질 수 있습니다. 이 경우 벡터의 최종 인덱스를 하드 코딩하면 트래버스 속도가 높아집니다. 이 문제는 작은 벡터에서는 발생하지 않으므로 최종 색인을 하드 코딩해도 상당한 속도가 빠지지 않습니다. 하드 코딩 끝 인덱스는 오버플로의 위험을 높일 수 있으므로 일반적으로 드물게 수행해야합니다.