[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