📝 Programmers School
[C++] 어서와! 자료구조와 알고리즘은 처음이지?
배열
: 같은 종류의 데이터가 연속적으로 저장되어 있는 자료 구조
- 인덱스를 사용해 특정 원소에 곧바로 접근 가능
O(1)
- 캐시 지역성 : 배열의 각 원소는 인접해 있어 하나의 원소에 접근하면 근처 원소도 함께 캐시로 가져옴
- 반복문에서 배열을 사용하면 효율적
- 상수 또는 상수 표현식으로 크기 지정
- 스택 메모리 영역에 할당 → 보통 1MB 할당
2차원 배열
int arr[행 번호][열 변호];
// {1, 2, 3},
// {4, 5, 6}
// → arr[2][3]
std::array
: C++에서 C스타일 배열을 대체하는 고정 크기 컨테이너
std::array<Type, n> Name;
std::array<int, 5> scores;
- 헤더파일에 정의
- 원소타입과 배열 크기를 매개변수로 사용하는 클래스 템플릿
- C 스타일 배열처럼 사용할 수 있는 [] 연산자 오버로딩 제공
- 대입 연산자 지원 (깊은 복사)
- 배열 크기를 정확히 알 수 있음 → `array::size()`
- 반복자 지원
- 배열의 크기를 명시적으로 지정해야 함
- 항상 스택 메모리 사용
- 고정 크기 배열이 아닌 가변 크기 배열을 더 선호