📜  C++ STL中的fill()和fill_n()函数(1)

📅  最后修改于: 2023-12-03 15:13:56.292000             🧑  作者: Mango

C++ STL中的fill()和fill_n()函数

STL(Standard Template Library)是C++中非常重要的一个库,它提供了许多有用的容器、算法、迭代器等数据结构和算法工具。其中就包括fill()和fill_n()两个函数。

fill()

fill()函数的作用是将指定区间内的所有元素都赋予给定的值。下面是fill()函数的语法:

template<class ForwardIterator, class T>
void fill(ForwardIterator first, ForwardIterator last, const T& value);

其中,firstlast是表示区间的迭代器,value是所要赋给区间中元素的值。

下面是一个使用fill()函数的例子,代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    vector<int> v = {1, 2, 3, 4, 5};
    int val = 0; // 将要赋给区间中元素的值
    fill(v.begin(), v.end(), val); // 将v中所有元素都赋值为0
    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << " "; // 输出:0 0 0 0 0
    }
    return 0;
}
fill_n()

fill_n()函数的作用是将指定的范围内的元素赋予给定的值。下面是fill_n()函数的语法:

template<class OutputIterator, class Size, class T>
void fill_n(OutputIterator first, Size n, const T& value);

其中,first是指向要赋值的第一个元素的迭代器,n是所要赋值的元素个数,value是所要赋给这些元素的值。

下面是一个使用fill_n()函数的例子,代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    vector<int> v = {1, 2, 3, 4, 5};
    int val = 0; // 将要赋给指定范围内元素的值
    int n = 3; // 将要赋值的元素个数
    fill_n(v.begin(), n, val); // 将v的前3个元素都赋值为0
    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << " "; // 输出:0 0 0 4 5
    }
    return 0;
}

以上就是fill()和fill_n()函数的介绍和示例。通过使用这两个函数,我们可以快速地对容器中的元素进行赋值操作,非常方便。