fill 2차원 배열, vector 초기화
2019. 10. 19. 18:13ㆍ알고리즘/암기
전체 초기화를 가정하면, 처음에는 [0][0]을 써준 후 그 다음 칸에는 [최대 행(값) - 1][최대 열], 다음 칸에는 초기 상태의 값을 넣는다
fill(&arr[0][0], &arr[MAX - 1][MAX], VALUE);
시작 인덱스가 다르다면 다르게 채워 넣으면 된다
vector는 생성 시, 원하는 값으로 바로 채워 넣을 수 있지만 추후에 바꾸게 될 수 있으므로 알아두면 좋다
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
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;
}
begin 쪽의 주소를 옮겨 특정 행부터 채울 수 있다
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
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;
}
'알고리즘 > 암기' 카테고리의 다른 글
세그먼트 트리 (0) | 2019.10.30 |
---|---|
set 컨테이너 (0) | 2019.10.23 |
벨만포드 알고리즘 (0) | 2019.10.18 |
수학적 귀납법으로 증명하기 (0) | 2019.10.18 |
피보나치 수의 시간복잡도 (0) | 2019.10.18 |