📅  最后修改于: 2023-12-03 14:59:46.396000             🧑  作者: Mango
C++ STL中的fill()
和fill_n()
函数是用于填充容器(例如数组、向量、列表等)中元素的函数。它们的作用是将指定的值赋给容器中所有指定范围的元素。
fill()
函数可以将指定值赋给容器中的所有元素,罗列如下:
template< class ForwardIt, class T >
void fill( ForwardIt first, ForwardIt last, const T& value );
其中first
和last
表示要赋值的元素范围,value
是要赋的值。
例如,下面的代码将向量vec
中所有元素赋值为5
:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec(10);
std::fill(vec.begin(), vec.end(), 5);
for (auto&& i : vec) {
std::cout << i << ' ';
}
return 0;
}
输出结果为:
5 5 5 5 5 5 5 5 5 5
fill_n()
函数将指定值赋给容器中指定范围的n
个元素,罗列如下:
template< class OutputIt, class Size, class T >
void fill_n( OutputIt first, Size count, const T& value );
其中first
是起始位置,count
表示要赋值的元素个数,value
是要赋的值。
例如,下面的代码将向量vec
中前5个元素赋值为8
:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec(10);
std::fill_n(vec.begin(), 5, 8);
for (auto&& i : vec) {
std::cout << i << ' ';
}
return 0;
}
输出结果为:
8 8 8 8 8 0 0 0 0 0
可以看到,只有前5个元素被赋值为8
,其余元素保持默认值0
。
fill()
和fill_n()
函数是C++ STL中常用的函数,用于填充容器中的元素。它们提供了方便的接口,使得对容器进行赋值变得十分简单。需要注意的是,fill_n()
函数只能填充指定数量的元素,如果要填充所有元素,应该使用fill()
函数。