[C++] 배열

김세희·2025년 6월 18일

✍️Today I Learned

  1. 배열

배열의 특징

  1. 동질성
    배열의 원소는 모두 동일한 타입이다.
  2. 연속된 메모리 할당
    물리적으로 메모리에 연속적으로 주소를 할당한다.
    단편화 문제가 발생할 확률이 적다.
    특정 위치에 접근하기 위해 추가적 연산이 필요하지 않아 접근 속도가 빠르다.
  3. 인덱스 기반 접근
    배열의 첫 번째 원소는 인덱스 0을 가지며 원소들은 순차적으로 1씩 증가하는 인덱스를 통해 접근할 수 있다.

배열의 선언

1차원 배열

// 1차원 배열 선언
data_type array_name[size];
// 1차원 배열 초기화 리스트
// 원소 일부만 적으면 나머지는 자동으로 0으로 초기화 된다.
data_type array_name[size] = {value1, value2, ...}; 

2차원 배열

// 2차원 배열 선언
data_type array_name[row_size][col_size];
// 2차원 배열 초기화 리스트
// 원소 일부만 적으면 나머지는 자동으로 0으로 초기화 된다.
data_type array_name[2][3] = {{value1, value2, value3}, {value1, value2, value3}}; 

배열의 메모리 구조

1차원 배열

첫 번째 원소부터 차례대로 연속적인 메모리 공간에 저장된다.
[arr[0]] [arr[1]] [arr[2]]

2차원 배열

1행부터 연속적인 메모리 공간에 행 우선 순서로 저장된다.
[arr[0][0]] [arr[0][1]] [arr[0][2]] [arr[1][0]] [arr[1][1]] [arr[1][2]]

배열의 효율성

맨 뒤에 삽입할 경우

다른 원소에 영향을 미치지 않고 그냥 추가 -> O(1)

맨 앞에 삽입할 경우

기존 원소들을 모두 한 칸씩 뒤로 밀고 추가 -> O(N)

0개의 댓글