📜  C++ : List的不同初始化方法(1)

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

C++ : List的不同初始化方法

List是C++ STL中的一个容器,可以用于存储各种类型的数据。本文将介绍List的不同初始化方法,以及如何在程序中使用List。

List的初始化方法
方法一:直接初始化(Initialization by Braces)

通过大括号直接初始化List。

#include <iostream>
#include <list>

using namespace std;

int main()
{
    list<int> numbers{1, 2, 3, 4, 5};
    list<string> words{"hello", "world"};
    
    for (int i : numbers)
    {
        cout << i << endl;
    }
    
    for (string s : words)
    {
        cout << s << endl;
    }
    
    return 0;
}

上面的代码通过大括号直接初始化了两个List对象:一个包含整数,一个包含字符串。可以使用for循环遍历List并打印其中的元素。

方法二:使用迭代器初始化(Initialization Using Iterators)

使用迭代器初始化List。

#include <iostream>
#include <list>

using namespace std;

int main()
{
    list<int> numbers{1, 2, 3, 4, 5};
    
    list<int> copy(numbers.begin(), numbers.end());
    
    for (int i : copy)
    {
        cout << i << endl;
    }
    
    return 0;
}

上面的代码使用了List的迭代器来初始化了另一个List。在这个例子中,我们使用了begin()和end()函数来获取原始List的起始和结束点。我们将这些值传递给另一个List的构造函数,以创建具有相同元素的新List。

方法三:使用拷贝构造函数进行初始化(Initialization Using Copy Constructor)

使用拷贝构造函数初始化List。

#include <iostream>
#include <list>

using namespace std;

int main()
{
    list<int> numbers{1, 2, 3, 4, 5};
    
    list<int> copy(numbers);
    
    for (int i : copy)
    {
        cout << i << endl;
    }
    
    return 0;
}

拷贝构造函数接受一个现有的List作为参数,并用其创建一个新的List。在这个例子中,我们传递了原始的numbers List来创建一个新的copy List。

方法四:使用赋值运算符进行初始化(Initialization Using Assignment Operator)

使用赋值运算符初始化List。

#include <iostream>
#include <list>

using namespace std;

int main()
{
    list<int> numbers{1, 2, 3, 4, 5};
    
    list<int> copy = numbers;
    
    for (int i : copy)
    {
        cout << i << endl;
    }
    
    return 0;
}

赋值运算符“=”被用来基于已有的List对象创建一个新的List。在这个例子中,我们创建了一个新的List对象,将其命名为copy,然后将原始的numbers List复制到其中。

总结

List是C++ STL提供的一个数据结构,可以用于存储不同类型的数据。本文介绍了四种初始化List的方法:直接初始化、使用迭代器初始化、使用拷贝构造函数初始化和使用赋值运算符初始化。你可以使用任何一种方法来创建一个新的List对象,并在程序中使用它。