C++ STL
2차원 배열 fill로 초기화.(feat memset)
parkit
2019. 1. 10. 07:45
728x90
반응형
2차원 배열을 fill로 초기화.
for문으로도 가능하긴 하나, fill로도 가능하다.
단순, 0으로 초기화하고 싶을 때는 memset이 가장 편하다.
출력 결과
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | cs |
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include <iostream> #include <queue> #include <stack> #include <cstdio> #include <vector> #include <cstring> #include <string> #include <math.h> #include <algorithm> #include <map> using namespace std; #define MAX 11 int arr[MAX][MAX] = { 0, }; int main(void) { // 전체 초기화 : 처음에는 [0][0]을 써주고, 그 다음 칸에는 [최대 행(값) - 1][최대 열], 다음 칸에는 초기 상태의 값 fill(&arr[0][0], &arr[MAX - 1][MAX], 7); for (int i = 0; i < MAX; i++) { for (int j = 0; j < MAX; j++) { printf("%d ", arr[i][j]); } printf("\n"); } printf("\n\n"); memset(arr, 0, sizeof(arr)); // 단순 0으로의 초기화는 memset이 가장 편하다. // 일부분 초기화 : 처음에는 [0][0]을 써주고, 그 다음 칸에는 [행 범위 지정][열 범위 지정], 다음 칸에는 초기 상태의 값 fill(&arr[0][0], &arr[MAX - 5][MAX - 3], 7); // 예) 두 번째 칸 = [5][0] : 5행 까지만 초기화, [5][2] : 5행을 넘어서 6행의 가장 오른쪽 2개 전까지 초기화. for (int i = 0; i < MAX; i++) { for (int j = 0; j < MAX; j++) { printf("%d ", arr[i][j]); } printf("\n"); } return 0; } | cs |
728x90
반응형