fill()

김민수·2025년 1월 27일

C++

목록 보기
63/68

fill 함수는 지정된 범위에 있는 요소들을 특정 값으로 채우는 함수다.


1. 정의

void fill(ForwardIterator first, ForwardIterator last, const T& value);
  • 매개변수

    • first: 채우기 시작할 반복자(포함)
    • last: 채우기를 끝낼 반복자(미포함)
    • value: 범위를 채울 값
  • 동작

    • (first, last) 범위에 있는 모든 요소를 value로 채운다.


2. 사용 예시

1. 벡터의 모든 값을 특정 값으로 초기화

#include <iostream>
#include <vector>
#include <algorithm> // fill 함수가 포함된 헤더

int main() {
    std::vector<int> vec(10);

    // 벡터를 7로 채움
    std::fill(vec.begin(), vec.end(), 7);

    for (int num : vec) {
        std::cout << num << " ";
    }
    return 0;
}

출력 결과:

7 7 7 7 7 7 7 7 7 7

2. 배열의 특정 범위를 채우기

#include <iostream>
#include <algorithm> // fill 함수가 포함된 헤더

int main() {
    int arr[10] = {0};

    // 배열의 3번째부터 7번째 요소를 5로 채움
    std::fill(arr + 2, arr + 7, 5);

    for (int num : arr) {
        std::cout << num << " ";
    }
    return 0;
}

출력 결과:

0 0 5 5 5 5 5 0 0 0

3. 일부 범위만 특정 값으로 변경하기

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

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8};

    // 2번째부터 6번째 요소를 9로 채움
    std::fill(vec.begin() + 1, vec.begin() + 6, 9);

    for (int num : vec) {
        std::cout << num << " ";
    }
    return 0;
}

출력 결과:

1 9 9 9 9 9 6 7 8


3. 주의사항

  1. fill 함수는 임의 접근 반복자뿐만 아니라 순차 접근 반복자를 지원한다. 즉, 리스트(std::list)에서도 사용할 수 있다.
  2. (first, last) 범위를 벗어나지 않도록 반복자의 유효 범위를 항상 확인해야 한다.


4. 관련 함수

std::fill_n : 지정된 개수의 요소를 특정 값으로 채우는 함수

void fill_n(OutputIterator first, Size count, const T& value);
  • 매개변수

    • first: 값을 채우기 시작할 위치를 나타내는 반복자
    • count: 채울 요소의 개수
    • value: 채울 값
  • 동작

    • first부터 시작해서 count개의 요소를 value로 채운다.

예시

std::vector<int> vec(10);
std::fill_n(vec.begin(), 5, 3); // 처음 5개의 요소를 3으로 채움
profile
안녕하세요

0개의 댓글