습관처럼

C++ - vector 초기화 본문

Language/C++

C++ - vector 초기화

dev.wookii 2020. 4. 13. 16:26

이번에는 vector 초기화에 대해서 알아보도록 하겠습니다.~  바로 fill을 이용한 초기화를 진행하면 간단히 vector를 초기화 가능합니다.

#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

int main(void) {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	vector<vector<int>> mat(5, vector<int>(5));

	fill(mat.begin(), mat.end(), vector<int>(5, 5));
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 5; j++) {
			cout << mat[i][j] << ' ';
		}
		cout << '\n';
	}
	cout << '\n';
	return 0;
}

실행결과

#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

int main(void) {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	vector<vector<int>> mat(5, vector<int>(5));

	fill(mat.begin() + 2, mat.end(), vector<int>(5, 5));
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 5; j++) {
			cout << mat[i][j] << ' ';
		}
		cout << '\n';
	}
	cout << '\n';
	return 0;
}

실행결과

바로 fill에서 begin()+n을 할때 n번째 부터 마지막까지 5로 초기화 되는것을 볼 수 있습니다.  먼저 vector<vector<int>>mat을 통해 2차원 백터를 만들고 (5,vector<int>(5))를 통해 mat 백터 크기는 5이고 mat 백터 크기 하나당 vector<int>(5) 즉 5개의 element를 가지고 있다는 것을 의미합니다.