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 객체가 만들어지고 이 객체의 포인터는 힙의 벡터객체들을 가리킨다.
이 벡터 객체들의 포인터는 힙의 배열의 시작점을 가리키게 된다.