본문 바로가기

Programming/C++

C++ vector<vector<int> > 2차원 벡터의 크기

C++ STL Sequence container의 vector는 동적배열이라고 볼 수 있다.

배열이기에 마치 2차원 배열처럼 vector도 2차원으로 설계가 가능하다.

 

2차원 배열을 사용하면 필연적으로 계산해야 하는 부분이 생기는데, 바로 row와 column의 크기를 측정하는 것이다.

함수의 parameters로 2차원배열을 넘기는 경우가 있기 때문에, row와 column의 count를 구하는 것은 중요하다고 볼 수 있다.

 

하지만 C언어 등에서 일반적인 2차원 배열의 크기를 구하는 방식으로 하면 정상적인 크기가 구해지지 않는다.

즉 sizeof()를 사용해도 정상적인 크기가 구해지지 않는다.

 

 

구하는 방법은 단순하다. vector의 멤버함수인 .size()를 이용하여 행과 열을 구할 수 있다.

 

vector<vector<int> > arr = {{1, 2, 3}, {4, 5, 6}};

 

 

//행(row)
int row_count = arr.size() //result: 2

 

 

//열(column)
int col_count = arr[0].size() //result: 3