프로그래밍 언어/C++
[C/C++ 6.3] STL Vector 2차원
물꼮이
2022. 4. 23. 12:32
2차원 벡터 선언
vector<vector<string>> parsed;
2차원 벡터 선언 (크기지정)
2차원 벡터를 선언 vector<vector<type>> 하고,
(행 크기, 열 크기) 형식으로 크기도 함께 지정해줘야 한다.
이 때, 행의 구성 자체가 1차원 vector로 이루어지므로,
'열 크기'는 1차원 벡터를 크기선언 하듯 vector<int> (N) 자체로 선언해줘야 한다.
board = vector<vector<int>>(N, vector<int>(N));
1차원벡터 선언(크기지정)
board = vector<int>(N);
2차원 벡터 사용 (크기 지정 안되어있을 시)
크기 지정이 안되어있다면, 메모리 할당이 안되어있는 상태이다.
그 상태로 바로 index로 접근(parsed[i]) 하는 것은 불가능 하므로,
바로 값을 입력(parsed[i].push_back)하면 에러가 발생한다.
그러므로 반드시, 1차원 벡터 자체를 삽입 해준 후, (parsed.push_back( vector<string>() );)
index로 접근해 값을 입력 해야 한다. (parsed[i].push_back(str);)
// 벡터 선언 (크기지정x)
vector<vector<string>> parsed;
// 1차원 벡터를 삽입해준 후,
parsed.push_back(vector<string>());
parsed[i].push_back(str); // 값 입력
2차원 벡터 출력 (iterator)
// 2차원 vector 출력 iterator
for (auto it : parsed) { // parsed가 2차원 벡터
for (auto itt : it) {
cout << itt << " "; // 각 n번째 element 접근 방법
}
cout << endl;
}