📌  相关文章
📜  C++ STL中的forward_list :: 运算符=(1)

📅  最后修改于: 2023-12-03 14:59:46.502000             🧑  作者: Mango

C++ STL中的forward_list::operator=

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 对象的内容复制给另一个。该运算符实现了浅拷贝,将源对象的元素逐个复制到目标对象中。还可以使用右值引用来将临时对象的内容转移给目标对象。