그냥 게임개발자

Array 본문

내 개인적인 공부/자료구조

Array

sudoju 2024. 4. 13. 15:29

정적배열이에요.

 

아시죠?

 

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