📜  C++ STL中的forward_list Assign()函数(1)

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

C++ STL中的forward_list Assign()函数

forward_list是C++标准库中的一种单向链表容器,它提供了许多与链表相关的操作,其中之一就是Assign()函数。

Assign()函数的作用

Assign()函数用于将一个范围内的元素复制给当前的链表对象,可以有以下几种重载形式:

void assign(size_type n, const value_type& val);
template <class InputIterator>
void assign(InputIterator first, InputIterator last);
void assign(initializer_list<value_type> il);

第一个重载形式将当前链表中的所有元素替换为n个val值。

第二个重载形式将当前链表中的所有元素替换为[first, last)中的元素,其中[first, last)是一个区间。

第三个重载形式将当前链表中的所有元素替换为initializer_list对象中的元素。

Assign()函数的使用示例

以下是使用Assign()函数的几个示例:

#include <iostream>
#include <forward_list>

using namespace std;

int main()
{
    // 使用第一种重载形式
    forward_list<int> l1 = {1, 2, 3};
    l1.assign(2, 0);
    for (auto x : l1) cout << x << " ";
    // 输出0 0

    // 使用第二种重载形式
    forward_list<int> l2 = {1, 2, 3};
    forward_list<int> l3 = {4, 5, 6};
    l2.assign(l3.begin(), l3.end());
    for (auto x : l2) cout << x << " ";
    // 输出4 5 6

    // 使用第三种重载形式
    forward_list<int> l4 = {1, 2, 3};
    l4.assign({4, 5, 6});
    for (auto x : l4) cout << x << " ";
    // 输出4 5 6

    return 0;
}

以上例子分别演示了三种Assign()函数的使用方法。