<aside> 📌 배열 = 같은종류의 데이터의 모음
</aside>
배열의 인덱스접근 = O(1)
배열은 캐시지역성을 가짐
<aside> 📌 캐시지역성 = 배열이 인덱스접근을 하면 근방의 원소들도 캐시로 가져옴 → 반복문에서 배열을 사용할 시 매우 효율적임
</aside>
배열은 STACK에 할당되는데 보통 1MB정도가 할당됨
배열 선언시 초기화하지 않을 경우 garbage value가 들어가게 됨 → 빈중괄호로 초기화하면 0으로 맞춰짐
sizeof()함수는 메모리*인덱스를 반환
int s = 5;
float ans = (float)s / 3.0;
//위와같이 타입 캐스팅을 해줄 수 있음.
C 스타일 2중차원 배열에서 행열을 만들 시에
mat[0][5] 이라면 0열 5행의 값임
메모리 저장 순서는 위와 같음
<aside> ❗ N차원 배열의 탐색 시에 N중 루프를 row→column순이 아닌 column→row 순으로 탐색을 하게 되면 캐시지역성을 활용할 수 없게 됨
</aside>
C스타일 배열을 C++에서 사용하기 위한 std::array
[1] C++에서 C의 배열을 대체하는 고정크기 컨테이너임
[2] C 스타일 배열처럼 []오버로딩 연산을 지원
[3] array클래스에서 제공하는 std::size()함수를 통해 배열크기를 정확히 알 수 있음
[4] STL의 클래스이기 때문에 반복자를 지원