Skip to main content

동적 배열이란 무엇입니까?

dynamic 동적 배열은 컴퓨터 프로그래밍에 사용되는 데이터 구조로 여러 컴퓨팅 객체를 단일 그룹으로 보유하고 있으며 다양한 수의 객체를 수용하도록 의지적으로 크기를 조정할 수 있습니다.이 그룹은 단일 연속 메모리 블록으로 유지되므로 요소에 대한 액세스는 효율적이고 빠릅니다.동적 배열은 사용되는 컴퓨터 언어에 따라 벡터 또는 목록이라고도합니다.이러한 이름에도 불구하고 목록과 벡터가 배열과 서로 다르게 구현 될 수 있기 때문에 특정 목록 또는 벡터는 동적 배열이 아닐 수 있습니다.

C ++는 클래스 그룹에 상주하는 벡터라는 단일 동적 배열 클래스를 포함합니다.표준 템플릿 라이브러리라고합니다.이 클래스를 뒷받침하는 배열은 반복자 또는 인덱스로 액세스 할 수 있습니다.주문형으로 크기를 조정하는 능력은 큰 장점이지만 프로그래머를 잘못 보안 감각으로 유혹 할 수 있습니다.벡터를 뒷받침하는 동적 배열은 액세스 요청이 유효한지 확인할 수 없습니다.정적 배열과 마찬가지로 프로그램이 할당되지 않은 메모리에 액세스하려고 시도하는 경우 동적 배열은 경계 점검 및 메모리 손상 문제를 가질 수 있습니다.배열의 요소는 인덱스에 의해서만 액세스되며 배열 이외의 인덱스에 액세스하려고하면 일반적으로 메모리 손상 문제가 발생하지 않습니다.Java Vector 클래스는 C ++ 벡터 클래스와 거의 동일하며 여러 스레드에 의한 액세스를 가능하게하기 위해 동기화되지 않습니다.대조적으로는 ArrayList 및 CopyOnWriteAreArayList는 스레드 안전입니다.세 가지 중, 복사상 WriteArraylist는 새로운 값이 배열에 기록 될 때마다 동적 배열을 완전히 재현하기 때문에 가장 노동 집약적 인 클래스입니다.특정 언어에 따라 그 위에 구축 된 다른 기능이있을 수 있습니다.정적 배열과 마찬가지로 동적 배열은 모두 같은 유형의 물체 인 한 그 안에 저장할 수있는 물체의 유형을 제한하지 않습니다.프로그래머는 동적 배열에 직접 액세스 할 필요가 없습니다.쉽게 사용하기 위해 배열을 감싸는 클래스를 통해 항상 수행 할 수 있습니다.이 배열을 올바르게 사용하면 코드 내부의 데이터 조직과 손쉬운 유지 보수에 적합한 이해할 수있는 코드를 만드는 데 도움이 될 수 있습니다.