📜  C++ 中的列表——一些有用的函数(1)

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

C++ 中的列表——一些有用的函数

C++ 中的列表是一种非常有用的数据结构,其由一组节点组成,其中每个节点都包含数据和指向下一节点的指针。在 C++ 中,可以使用标准库中的 list 类来进行列表操作。

本文介绍了一些 list 类中非常有用的函数,以便程序员能够更好地理解和使用列表数据结构。

构造函数

在使用 list 类之前,需要使用构造函数创建一个空列表。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    std::cout << "List size: " << myList.size() << std::endl;
    return 0;
}

在上述示例中,我们创建了一个名为 myList 的空列表,并使用 size() 函数输出了列表的大小。

插入元素

向列表中插入元素是列表操作中最常见的任务之一。list 类提供了几个函数,可以很方便地完成这个任务。

push_back()

push_back() 函数用于在列表的末尾添加一个元素。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    for (auto i : myList) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述示例中,我们使用 push_back() 函数添加了三个元素到列表中,并使用循环打印出了列表中的所有元素。

push_front()

push_front() 函数用于在列表的开头添加一个元素。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    myList.push_front(3);
    myList.push_front(2);
    myList.push_front(1);
    for (auto i : myList) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述示例中,我们使用 push_front() 函数添加了三个元素到列表的开头,并使用循环打印出了列表中的所有元素。

insert()

insert() 函数用于在列表中插入一个元素,可以插入到列表的任何位置。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(4);
    myList.insert(myList.begin() + 2, 3);
    for (auto i : myList) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述示例中,我们首先向列表中添加了三个元素,然后使用 insert() 函数在第三个位置插入了一个值为 3 的元素,并使用循环打印出了列表中的所有元素。

删除元素

从列表中删除元素也是列表操作中非常常见的任务之一。同样,list 类提供了几个函数,可以很方便地完成这个任务。

pop_back()

pop_back() 函数用于删除列表末尾的元素。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    myList.pop_back();
    for (auto i : myList) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述示例中,我们首先向列表中添加了三个元素,然后使用 pop_back() 函数删除了列表的最后一个元素,并使用循环打印出了列表中的所有元素。

pop_front()

pop_front() 函数用于删除列表的第一个元素。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    myList.pop_front();
    for (auto i : myList) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述示例中,我们首先向列表中添加了三个元素,然后使用 pop_front() 函数删除了列表的第一个元素,并使用循环打印出了列表中的所有元素。

erase()

erase() 函数用于从列表中删除指定元素。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    myList.erase(myList.begin() + 1);
    for (auto i : myList) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述示例中,我们首先向列表中添加了三个元素,然后使用 erase() 函数删除了列表中的第二个元素,并使用循环打印出了列表中的所有元素。

更改元素

同样,你可能需要在列表中更改元素。list 类提供了几个函数,可以很方便地完成这个任务。

assign()

assign() 函数用于将现有列表的值替换为新值。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    myList.assign({4, 5, 6});
    for (auto i : myList) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述示例中,我们首先向列表中添加了三个元素,然后使用 assign() 函数将列表替换为一个包含三个新元素的列表,并使用循环打印出了列表中的所有元素。

insert()

insert() 函数还可以用于更改列表中的元素。

#include <iostream>
#include <list>

int main() {
    std::list<int> myList;
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    myList.insert(myList.begin() + 1, 5);
    for (auto i : myList) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

在上述示例中,我们首先向列表中添加了三个元素,然后使用 insert() 函数将列表中的第二个元素更改为 5,并使用循环打印出了列表中的所有元素。

总结

C++ 中的列表是一种非常有用的数据结构,其由一组节点组成,其中每个节点都包含数据和指向下一节点的指针。在 C++ 中,可以使用标准库中的 list 类来进行列表操作。

本文介绍了 list 类中一些非常有用的函数,包括构造函数、插入元素、删除元素和更改元素。这些函数可以帮助程序员更好地理解和使用列表数据结构。