ND array

김대익·2022년 3월 15일
0

c스타일의 다차원 배열의 경우

int main() {
	int matrix[5][5];
    
    int ** pMatrix = new int * [5];
    for () {
    	ptr = new int[5];
    }
    
    for () {
    	delete [] ptr;
    }
    delete [] pMatrix;
}

이렇게 만드는데
vector와 array로 가능하다
vector는 힙에, array는 스택에 생성한다.

#include <array>
#include <vector>

int main() {
	std::array<int,3>,3> fixedMatrix;
    std::vector<std::vector<int>> dynamicMatirx(3, std::vector<int>(3));
}

컴파일시간에 배열의 크기를 알고 크기가 작다면 array,
그 외에는 vector를 사용하는 것이 좋다.



만약 3*3 array를 만든다고 한다면 이는 메모리에서

연속된 공간으로 나타난다.


벡터는 조금 다른데

스택에는 vector 객체가 만들어지고 이 객체의 포인터는 힙의 벡터객체들을 가리킨다.

이 벡터 객체들의 포인터는 힙의 배열의 시작점을 가리키게 된다.

0개의 댓글