Array

2020. 1. 28. 11:48{Programing}/Data Structure

많은 프로그래밍 언어에서 기본적으로 지원하는 자료구조로

 

선형 자료구조의 대표격으로 리스트와 거의 비슷하다.

 

리스트와 차이점은 물리적 메모리의 주소값이다.

 

리스트는 포인터로 구성된 만큼 물리적 메모리가 선형적으로 딱 붙어있지 않는다.

 

//리스트 그림.  메모리 주소

 

배열은 물리적 메모리가 딱 붙어서 저장된다.

 

//배열 그림. 메모리 주소

 

배열에는 정적 배열, 동적 배열이 있다.

 

정적 배열 : 배열 선언시 크기가 정해지는 배열. 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