📅  最后修改于: 2023-12-03 14:59:46.502000             🧑  作者: Mango
forward_list
是C++ STL(标准模板库)中的一个容器,它是一种单向链表,用于存储元素。forward_list
类提供了一个赋值运算符(operator=
),用于将一个 forward_list
对象的内容复制给另一个。
以下是 forward_list
的赋值运算符的语法:
forward_list& operator=(const forward_list& other);
forward_list& operator=(forward_list&& other);
other
:另一个 forward_list
对象,用于赋值。forward_list
的赋值运算符用于将另一个 forward_list
对象中的元素复制到目标 forward_list
中。该运算符实现了浅拷贝,将 other
中的元素逐个复制到目标对象中。
如果目标 forward_list
非空,则赋值运算符会先释放目标对象中的元素,并根据 other
中的元素数量重新分配内存。
赋值运算符还支持右值引用,可用于将临时 forward_list
对象的内容转移给目标对象,避免不必要的内存拷贝。
下面是一个使用 forward_list::operator=
的示例代码:
#include <iostream>
#include <forward_list>
int main() {
std::forward_list<int> list1 = {1, 2, 3, 4, 5};
std::forward_list<int> list2 = {10, 20, 30};
// 使用赋值运算符将 list2 的内容赋值给 list1
list1 = list2;
std::cout << "list1: ";
for (const auto& value : list1) {
std::cout << value << " ";
}
std::cout << std::endl;
std::cout << "list2: ";
for (const auto& value : list2) {
std::cout << value << " ";
}
std::cout << std::endl;
return 0;
}
输出:
list1: 10 20 30
list2: 10 20 30
在上面的示例中,使用赋值运算符将 list2
的内容赋给了 list1
。可以看到,list1
成功复制了 list2
的元素。
forward_list
的赋值运算符允许将一个 forward_list
对象的内容复制给另一个。该运算符实现了浅拷贝,将源对象的元素逐个复制到目标对象中。还可以使用右值引用来将临时对象的内容转移给目标对象。