[C++] fill 함수 사용하기

C++에서 fill 함수를 사용해보자


환경 및 선수조건

  • C++


목적

  • fill함수는 어떤 연속성을 띈 자료구조(벡터나 배열 같은)의 시작점부터 연속된 범위를 어떤 값이나 객체로 모두 지정하고 싶을 때 사용하는 함수이다.


기본 함수 구조 및 매개변수

#include <algorithm>

void fill (ForwardIterator first, ForwardIterator last, const T& val);
  • #include <algorithm>: fill함수를 사용하기 위해 필요한 헤더파일
  • first: 채우고자 하는 자료구조의 시작위치 iterator
  • last: 채우고자 하는 자료구조의 끝위치 iterator이며 last는 포함하지 않는다!
  • val: first부터 last전까지 채우고자 하는 값으로 어떤 객체나 자료형을 넘겨줘도 템플릿 T에 의해서 가능하다.


코드

  • 코드
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main () {

	// 백터 생성
	vector<int> v(8);

	// 1번째 위치부터 4번째 위치까지 1로 할당
	fill (v.begin(), v.begin()+4, 1);

	// 5번째 위치부터 끝까지 2로 할당
	fill (v.begin()+4, v.end(), 2);

	cout << "v contains :";
	for (vector<int>::iterator it=v.begin(); it!=v.end(); ++it)
		cout << ' ' << *it;
	cout << '\n';


	// 배열 생성
	int a[8] = {0,};

	// 1번째 위치부터 4번째 위치까지 1로 할당
	fill (a, a + 4, 1);

	// 5번째 위치부터 끝까지 2로 할당
	fill (a + 4, a + sizeof(a)/sizeof(int), 2);

	printf("a contains :");
	for (int i = 0; i<sizeof(a)/sizeof(int); i++)
		printf(" %d", a[i]);
	printf("\n");

	return 0;
}


참고자료