[C++] fill method

반응형
반응형

 

*C++ STL Algorithm 헤더의 fill 메서드 사용 방법에 대해 다룬 포스팅입니다.

*개인적인 공부 내용을 기록하기 위해 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다.


#fill 

void fill (ForwardIterator first, ForwoardIterator last, const T& value);

Header - <algorithm> 

지정 범위의 요소들을 "타입에 맞는 값" 으로 채워준다. 

int type 배열이라면 int 타입에 맞는 값으로 각 요소를 설정하며, 이터레이터를 지원하기에 vector, array와 같은 다른 STL 컨테이너에서 사용 가능하다. 

 

#배열에서 fill 함수를 사용한 예제

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    
    int arr[5];
    fill(arr, arr + 5, 1);
    for (auto i : arr) cout << i << " ";

    return 0;
}
1 1 1 1 1

 

#2차원 배열에서 fill 함수를 사용한 예제

*2차원 배열의 경우 1차원 배열과 달리 각 행을 포인터로 접근해야 하기에 &연산자를 붙여 주어야 한다.

#include <iostream>
#include <algorithm>
using namespace std;

int main() {

    int arr[5][5];
    fill(&arr[0][0], &arr[5][5], 1);
    for (int i = 0; i < 5; i++) {
        for (int  j = 0; j < 5; j++) {
            cout << arr[i][j] << " ";
        }
        cout << '\n';
    }

    return 0;
}
1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1

 

혹은 각 행을 직접 루프를 돌며 fill 메서드로 초기화해 주는 방법도 가능하다. 

#include <iostream>
#include <algorithm>
using namespace std;

int main() {

    int arr[5][5];

    // 각 행을 1로 초기화
    for (int i = 0 ; i < 5; i++) {
        fill(arr[i], arr[i] + 5, 1);
    }

    for (int i = 0; i < 5; i++) {
        for (int  j = 0; j < 5; j++) {
            cout << arr[i][j] << " ";
        }
        cout << '\n';
    }

    return 0;
}
1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1
반응형

'Problem Solving > PS With C++' 카테고리의 다른 글

Binary Search in C++ STL  (1) 2024.09.29
[C++] About STL Set Container in PS Algorithm  (0) 2024.09.17

댓글

Designed by JB FACTORY