많은 프로그래밍 언어에서 기본적으로 지원하는 자료구조로
선형 자료구조의 대표격으로 리스트와 거의 비슷하다.
리스트와 차이점은 물리적 메모리의 주소값이다.
리스트는 포인터로 구성된 만큼 물리적 메모리가 선형적으로 딱 붙어있지 않는다.
//리스트 그림. 메모리 주소
배열은 물리적 메모리가 딱 붙어서 저장된다.
//배열 그림. 메모리 주소
배열에는 정적 배열, 동적 배열이 있다.
정적 배열 : 배열 선언시 크기가 정해지는 배열. c++ 에서는 선언후에 길이를 재조정 할 수 없다.
동적 배열 : 포인터를 기반으로 생성하는 배열로, 필요한 경우 재할당을 통한 길이 조정이 가능하다.
배열을 구성하는 단위를 '요소' 라고 하며 각 요소는 index라고 하는 고유의 번호를 가지게 된다. 실제로 저장되는 값은 아니다.
index는 배열의 전체 길이를 n 이라고 할 때, 0 ~ n-1 까지의 범위를 가진다. 항상 정수형으로만 접근 가능하다.
배열의 자료형은 제한이 없다.
기본 선언
자료형 배열명[배열 길이];
배열 길이는 컴파일 타임부터 상수여야만한다.
초기화 방법
요소별 초기화, 리스트 초기화, 유니폼 초기화가 있다.
요소별 초기화 : 배열의 개별 요소별로 각각 초기화.
리스트 초기화 : 배열의 선언과 동시에 초기화 하는 방법. 배열의 각 요소를 리스트처럼 작성해서 초기화.
유니폼 초기화 : c++ 11에서 추가된 방식으로, 리스트 초기화와 비슷한 방법.
//요소별 초기화
int arr1[3];
arr1[0] = 0;
arr1[1] = 1;
arr1[2] = 2;
//리스트 초기화
int arr2[3] = { 3, 4, 5 };
//유니폼 초기화
int arr3[3] { 6, 7, 8 };
리스트 초기화나 유니폼 초기화를 사용 할 때, 고정된 개수의 요소가 존재하기 때문에
대괄호 안에 배열 길이를 지정하지 않아도 된다.
'{Programing} > Data Structure' 카테고리의 다른 글
Minimum Spanning Tree, MST - 최소 신장 트리 (0) | 2020.03.09 |
---|---|
Graph (0) | 2020.03.05 |
Tree - Normal (0) | 2020.01.21 |
Queue (0) | 2020.01.20 |
Stack (0) | 2020.01.20 |
댓글