C++ Fill()简介

486 阅读4分钟

C++ Fill()

C++ Fill()简介

C++ fill()函数是一个存在于算法头文件中的函数,它有助于将一个特定的值分配到给定容器的指定位置,如向量或数组。指向需要赋值的开始和结束位置的迭代器,以及值被作为参数传递给函数。这个方法存在于std库的算法头文件中。另外,这个方法可以用于任何数据类型;因此,它的定义包括一个模板定义。这里我们必须注意,结束迭代器是排他性的,但开始迭代器是包容性的范围。

语法

填充函数是C++库中算法头文件中提供的重要工具之一,用于一次性填充向量位置。这个方法非常有用,因为我们不需要逐个迭代到向量中的每个位置。

这个方法存在于算法头文件中;因此,必须将其包含在程序中,以便在一个应用程序中使用填充函数。

对于包括算法头文件,我们可以使用同样的语法来包括iostream头文件。

#include<algorithm> using namespace std;

因为我们是命名空间的名称,所以不需要在头文件名称的后缀中添加.h。

Std::fill(Iterator start, iterator end, value)

在这里,前2个参数是迭代器类型的,指向矢量的开始和结束位置。接下来,我们必须指定特定的值必须从哪个位置开始填充到矢量中。

例如,如果想在向量的第2位到倒数第2位填充一个特定的值,那么我们可以在开始迭代器中指定vector.begin()+1,在结束位置指定vector.end()-1。 这里我们必须注意,终点位置不包括在范围内。

下一个参数是我们指定需要使用fill函数在向量中填充的值。

例子。

fill(vector.begin()+2, vector.end()-1,5)

fill()算法函数如何在C++中工作?

fill函数是由C++的std库中的算法头文件提供的一个伟大的工具。这个函数需要以下3个参数:-

  1. **起始位置 -**这个参数是一个迭代器类型,指定需要填充值的容器的起始位置。
  2. **结束位置 -**这个参数也是迭代器类型,指定需要填充特定值的容器中的结束+1位置。我们必须注意,这个位置是排他性的;也就是说,当函数的值被分配时,这个位置不包括在内。
  3. **值 -**这个参数是需要被分配到容器的特定位置的值。该值的数据类型必须与被声明的容器的数据类型相同。

填充函数读取上述参数中的值,并在容器中进行迭代。如果位置位于给定的范围内,第三个参数中指定的值将被分配到该位置。

C++ Fill()的例子

下面提到了不同的例子。

例子 #1

在第一个例子中,我们将看到如何使用fill函数将长度为8的给定向量my_list的第2到倒数第3的位置填充为指定的值6。然后,我们将再次使用填充函数在从5开始到结束的位置填充数值2。

代码。

#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> my_list(8); fill(my_list.begin() + 1, my_list.end() - 2, 6); cout<<"Filling 6 at positions 2 to 6 : "; for (int i=0; i<my_list.size(); i++) cout << my_list[i] << " "; cout<<endl; cout<<"Filling 2 at positions 5 to 8 : "; fill(my_list.begin() + 4, my_list.end(), 2); for (int i=0; i<my_list.size(); i++) cout << my_list[i] << " "; return 0;

输出

C++ fill() output 1

例子 #2

在这个例子中,我们将执行一个填充函数来向一个数组中赋值。在这里,我们也将在数值没有被分配到数组中的特定位置的情况下,反映垃圾值。

代码。

#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { int my_arr[12]; fill(my_arr, my_arr + 8, 7); cout<<"Values in array after filling first 8 positions : "; for (int i = 0; i < 12; i++) cout << my_arr[i] << " "; cout<<endl; fill(my_arr+8, my_arr + 11, 9); cout<<"Values in array after filling positions from 9 to 12 : "; for (int i = 0; i < 12; i++) cout << my_arr[i] << " "; return 0; }

输出

C++ fill() output 2

例子 #3

在这个例子中,我们将看到在列表类型的容器中赋值。然后,我们将用一些值启动列表,但用fill函数替换这些值。

代码。

#include <iostream> #include <bits/stdc++.h> #include <algorithm> #include <vector> using namespace std; int main() { list<int> my_list = {7, 17, 27,34,67,8,44,9 }; cout<<"Values in my list before filling 10 at all positions : "; for (int x : my_list) cout << x << " "; cout<<endl; cout<<"Values in my list after filling 10 at all positions : "; fill(my_list.begin(), my_list.end(), 10); for (int x : my_list) cout << x << " "; cout<<endl; return 0; }

输出

C++ fill() output 3

总结

填充函数是存在于std库的算法头文件中的一个工具,它有助于将一个特定的值分配到容器中的特定位置。它接受迭代器,指向容器中带有数值的起始和结束索引,并将数值填充到这些位置。

推荐文章

这是一份关于C++ Fill()的指南。在这里,我们讨论了如何在C++中填充()算法函数的工作,以及与代码和输出有关的例子。你也可以看看下面的文章来了解更多------。

  1. C++ any()
  2. C++ setprecision
  3. C++中的类型转换
  4. C++中的信号