그냥 게임개발자
Array 본문
정적배열이에요.
아시죠?
int cArr[10]; // c스타일
array<int, 10> stdArr // std스타일
스타일 방식은 거기서 거기다
익숙한거 사용합시다.
vector와는 다르게 함수가 없어요.
배열을 코드로 직접 사용해보죠.
직접 손으로 쓴 것과 눈으로 대충 흝어보는것은 완전히 달라요.
공부하기로 마음 먹었으면
손으로 직접 써주세요.

#include <iostream>
using namespace std;
int arr[3] = { 1, 2, 3 };
int arr2[] = { 1, 2, 3, 4 };
int arr3[10];
int main()
{
// 1, 2, 3
for (int i = 0; i < 3; ++i)
cout << arr[i] << " ";
cout << '\n';
// 1, 2, 3, 4
for (int i = 0; i < 4; ++i)
cout << arr2[i] << " ";
cout << '\n';
// 1, 2, 3, 4
for (int entity : arr2)
cout << entity << " ";
// 0 ~ 10 까지 초기화
for (int i = 0; i < 10; ++i)
arr3[i] = i;
cout << '\n';
// 0 1, 2, 3, 4, 5, 6, 7, 8, 9
for (int entity : arr3)
cout << i << " ";
return 0;
}
그러면 배열을 vector처럼 2차원 배열을 만들고 탐색을 해보는 걸 해보죠!
2차원 배열은 단순하게 늘리면 됩니다.
#include <iostream>
using namespace std;
const int MAX_Y = 3;
const int MAX_X = 4;
int main()
{
int arr[MAX_Y][MAX_X];
// 초기화
for (int i = 0; i < MAX_Y; ++i)
{
for (int j = 0; j < MAX_X; ++j)
{
arr[i][j] = (i + j);
}
}
for (int i = 0; i < MAX_Y; ++i)
{
for (int j = 0 ; j < MAX_X; ++j)
{
cout << arr[i][j] << ' ';
}
cout << '\n';
}
}
이렇게 2차원 배열을 초기화 시키고 값을 출력하는 거를 해보았는데
2차원 배열을 접근할 때에는 1차원 배열(Y) -> 2차원 배열(X) 순으로 접근하는 것이 성능에 좋습니다.
이유는 C++에서 캐시를 첫번째 차원(Y)를 기준으로 하기 때문에 캐시관련 효율성 때문에 탐색을 하더라도 순서를 지켜가며 해주는 것이 좋습니다.
끄으트틑 배고프니까 피자시켰는데 피자가 아직 안왔어요 ㅠㅠㅠ 배고파라
'내 개인적인 공부 > 자료구조' 카테고리의 다른 글
랜덤접근과 순차적 접근? (0) | 2024.04.13 |
---|---|
Linked_List (0) | 2024.04.13 |
vector를 통해서 2차원 배열 만들기 (0) | 2024.04.13 |
vector의 정적할당? (0) | 2024.04.13 |
for in range (0) | 2024.04.13 |