개발자 데뷔!

[C/C++ 6.3] STL Vector 2차원 본문

프로그래밍 언어/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;
}

'프로그래밍 언어 > C++' 카테고리의 다른 글

[C/C++ 2.5] 문자열 handling  (0) 2022.03.16
[C/C++ 6.2] STL Vector  (0) 2022.03.11
[C/C++ 6.1] STL Sorting  (0) 2022.03.11
[C/C++ 2.4] 문자열 Parsing  (0) 2022.03.10
[C/C++ 2.2] string vs char[] 비교  (0) 2022.03.10