[C++, STL] 2차원 벡터 만들기

1차원 벡터에 n개를 푸시 후 2차원 벡터에 1차원 벡터를 푸시하는 방식이다.

이는 개인적으로 항상 사용하던 방식인 vectorv[100] 과 같이 벡터 배열을 만드는 것보다 메모리차원에서 효율적인 방식이다.

#include <iostream>
#include <vector>

using namespace std;

int main() {
	vector<vector<int>>V;
	vector<int>innerV;
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) innerV.push_back(0);
	for (int i = 0; i < n; i++) V.push_back(innerV);

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			cout << V[i][j];
		}
		cout << endl;
	}
}

/*

n=2일때 출력결과

00
00

n=3일때 출력결과

000
000
000

*/

Leave a Comment