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

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

C ++에는 표준 주형 라이브러리라는 클래스 그룹에 상주하는 벡터라는 단일 동적 배열 클래스가 포함되어 있습니다. 이 클래스를 뒷받침하는 배열은 반복자 또는 인덱스로 액세스 할 수 있습니다. 주문형을 크기를 조정하는 능력은 큰 장점이지만 프로그래머를 잘못 보안 감각으로 유혹 할 수 있습니다. 벡터를 뒷받침하는 동적 배열은 AC가CESS 요청은 유효합니다. 정적 배열과 마찬가지로 프로그램이 메모리에 할당되지 않은 메모리에 액세스하려고 시도하면 동적 배열이 경계 점검 및 메모리 손상 문제를 가질 수 있습니다.

Java에는 벡터, Arraylist 및 CopyonWriteArraylist의 세 가지 동적 배열 클래스가 포함되어 있습니다. 배열의 요소는 인덱스에 의해서만 액세스되며 배열 이외의 인덱스에 액세스하려고하면 일반적으로 메모리 손상 문제가 발생하지 않습니다. Java Vector 클래스는 C ++ 벡터 클래스와 거의 동일하며 여러 스레드에 의한 액세스를 가능하게하기 위해 동기화되지 않습니다. 대조적으로는 ArrayList 및 CopyOnWriteAreArayList는 스레드 안전입니다. 세 가지 중, 복사상 WriteArraylist는 새로운 값이 배열에 기록 될 때마다 동적 배열을 완전히 재현하기 때문에 가장 노동 집약적 인 클래스입니다.

.

동적 배열은 컴퓨터에 관계없이 본질적으로 동일한 방식으로 구현됩니다.언어는 관련이 있지만 특정 언어에 따라 그 위에 구축 된 다른 기능이있을 수 있습니다. 정적 배열과 마찬가지로 동적 배열은 모두 같은 유형의 물체 인 한 그 안에 저장할 수있는 물체의 유형을 제한하지 않습니다. 프로그래머는 동적 배열에 직접 액세스 할 필요가 없습니다. 쉽게 사용하기 위해 배열을 감싸는 클래스를 통해 항상 수행 할 수 있습니다. 이 배열을 올바르게 사용하면 코드 내부의 데이터 조직이있는 프로그래머와 쉽게 유지 보수를 할 수있는 이해할 수있는 코드를 만들 수 있습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?