📅  最后修改于: 2023-12-03 15:13:56.339000             🧑  作者: Mango
forward_list是C++标准库中的一种单向链表容器,它提供了许多与链表相关的操作,其中之一就是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()函数的几个示例:
#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()函数的使用方法。