std::fill
1
2
|
template <class ForwardIterator, class T>
void fill (ForwardIterator first, ForwardIterator last, const T& val);
|
cs |
- <algorithm> 헤더파일에 저장되어 있다.
- 값으로 범위(first, last)를 채우는 역할을 하는 함수이다.
인자 (Parameters)
- first, last
- val의 값으로 채울 범위를 나타내는 반복자들 [first, last)범위에 값이 채워지게 된다. first는 포함하지만 last는 포함하지 않는다.
- val
- 범위에 채울 값
리턴값 (return value)
- 없다.
예제
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 52 53 54 55 56 57 58 59 60 61 62 | // fill algorithm example #include <iostream> // std::cout #include <algorithm> // std::fill #include <vector> // std::vector int main() { // vector std::vector<int> myvector(8); // myvector: 0 0 0 0 0 0 0 0 std::fill(myvector.begin(), myvector.begin() + 4, 5); // myvector: 5 5 5 5 0 0 0 0 std::fill(myvector.begin() + 3, myvector.end() - 2, 8); // myvector: 5 5 5 8 8 8 0 0 std::cout << "myvector contains:"; for (std::vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it) std::cout << ' ' << *it; std::cout << '\n'; // array int myarray[8] = { 0, }; //myarray: 0 0 0 0 0 0 0 0 std::fill(myarray, myarray + 4, 7); //myarray: 7 7 7 7 0 0 0 0 std::fill(myarray + 3, myarray + sizeof(myarray) / sizeof(int) - 1, 2); //myarray: 7 7 7 2 2 2 2 0 printf("myarray contains :"); for (int i = 0; i < sizeof(myarray) / sizeof(int); i++) printf(" %d", myarray[i]); printf("\n"); // 2D array int my2darray[2][8] = { 0, }; //my2darray: {{0 0 0 0 0 0 0 0}, {0 0 0 0 0 0 0 0}} std::fill(my2darray[0] + 4 , my2darray[0] + 8 + 6 , 3); //my2darray: {{0 0 0 0 3 3 3 3}, {3 3 3 3 3 3 0 0}} std::fill(my2darray[0] + 7, my2darray[0] + 8 + 1 , 2); //my2darray: {{0 0 0 0 3 3 3 2}, {2 3 3 3 3 3 0 0}} printf("my2darray contains :"); for (int i = 0; i < sizeof(my2darray) / sizeof(my2darray[0]); i++) for (int j = 0; j < sizeof(my2darray[0]) / sizeof(int); j++) printf(" %d", my2darray[i][j]); printf("\n"); return 0; } | cs |
복잡도 (Complexity)
- 각 원소에 값을 할당하므로 [first,last) 만큼 걸린다.
Reference
'C,C++' 카테고리의 다른 글
[C++] 공백이 포함된 문자열 입력받기(char array, string : getline) (0) | 2019.10.23 |
---|---|
[C++] 문법 char to string , string to char 변환 (0) | 2019.10.16 |
[Effective C++]항목 17 : new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자. (0) | 2019.08.06 |
[Effective C++]항목 15 : 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자. (0) | 2019.08.05 |
[Effective C++] 항목 19 : 클래스 설계는 타입 설계와 똑같이 취급하자. (0) | 2019.08.01 |
댓글