배열이란 어떤 자료의 집합으로서 컴퓨터 자료구조에서 가장 간단한 자료구조중 하나입니다.
정적배열 (Static Array)
연속해있는 자료의 집합이며, 각자료는 번호를 가집니다. 번호는 n개를 원소로 가지는 배열일때 순서대로 0 ~ n - 1의 변호를 가지며 프로그래밍 언어에 따라서 1 ~ n개를 가지는 배열도 짤 수 있습니다.
배열의 길이를 10개로 선언하면 0 ~ 9 번까지의 번호가 자동으로 셋팅되며 프로그래밍 언어에 따라 다르지만
이 번호를 바꾸거나 변경하는 것은 불가능합니다.
또한 배열의 크기를 바꾸는것 역시 일반적으로는 불가능합니다. 즉 배열은 고정된 크기(fixed size)를 가지는 구조입니다.
가장 큰 장점으로는 인덱스 넘버를 가진다는 것으로서 자료를 번호로 접근할 수 있다는 점에서 굉장한 메리트를 가집니다.
배열을 쓰기 적합한 환경은
1. 인덱스 넘버를 활용할 수 있다.
2. 길이가 고정되어 그 길이 이상이 되는 자료를 왠만해서는 사용할 일이 없다.
3. 연속된 데이터를 아무 가공없이 임시로 저장하는 장소로 사용된다.
동적배열(Dynamic Array)
동적배열과 정적 배열의 차이.
정적배열 = 배열의 크기를 바꿀 수 없다. 동적배열 = 배열의 크기를 바꿀 수 있다.
사용용도
정적배열은 자료구조를 만드는데 쓰이는 베이스 자료구조, 데이터의 임시저장소, 문자열 저장. 등등 굉장히 많은 분야에서 쓰이지만 이 모든것들을 동적배열이 대체할 수 가 있다.
다만 사용방법이 조금 복잡하므로 버퍼같은 잠시 저장하는 용도로는 사용하지 않으며 데이터 크기의 잦은 변동이 일어날때 동적배열을 사용하게 된다.
'C++' 카테고리의 다른 글
| STL 벡터(vector) (0) | 2019.05.14 |
|---|---|
| STL이란 무엇인가? (0) | 2019.05.13 |
| 선형, 비선형 자료구조. (0) | 2019.05.13 |
| 스택, 큐, 덱 (0) | 2019.05.13 |
| C++ 프로그래밍 생성순서 (0) | 2019.05.09 |