C++怎么在列表中删除最后一个元素

C++怎么在列表中删除最后一个元素

C++怎么在列表中删除最后一个元素

C++中,我们通常使用标准库中的std::list来表示列表。std::list是一个双向链表,它提供了许多方便的操作,包括在列表的末尾添加元素和删除元素。在本文中,我们将讨论如何在std::list中删除最后一个元素。

使用pop_back()

最简单的方法是使用pop_back()函数来删除最后一个元素。pop_back()函数是std::list中定义的一个成员函数,它用于从链表的末尾删除一个元素。以下是一个示例:

#include <iostream>
#include <list>

int main() {
    std::list<int> myList = {1, 2, 3, 4, 5};

    std::cout << "Before deleting the last element: ";
    for (auto it = myList.begin(); it != myList.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    myList.pop_back();

    std::cout << "After deleting the last element: ";
    for (auto it = myList.begin(); it != myList.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

在这个示例中,我们首先创建了一个std::list对象myList,并向其中添加了一些整数。然后,我们打印出删除最后一个元素之前的列表,并调用pop_back()函数删除最后一个元素,最后再次打印修改后的列表。运行结果如下:

Before deleting the last element: 1 2 3 4 5
After deleting the last element: 1 2 3 4

使用erase()函数

除了pop_back()函数之外,我们还可以使用erase()函数来删除最后一个元素。erase()函数接受一个迭代器作为参数,并从链表中删除该迭代器指向的元素。因此,我们可以通过将迭代器指向最后一个元素,然后调用erase()函数来删除最后一个元素。以下是一个示例:

#include <iostream>
#include <list>

int main() {
    std::list<int> myList = {1, 2, 3, 4, 5};

    std::cout << "Before deleting the last element: ";
    for (auto it = myList.begin(); it != myList.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    auto lastElement = std::prev(myList.end());
    myList.erase(lastElement);

    std::cout << "After deleting the last element: ";
    for (auto it = myList.begin(); it != myList.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

在这个示例中,我们首先创建了一个std::list对象myList,并向其中添加了一些整数。然后,我们打印出删除最后一个元素之前的列表,并使用std::prev()函数获取最后一个元素的迭代器,最后调用erase()函数删除最后一个元素。运行结果如下:

Before deleting the last element: 1 2 3 4 5
After deleting the last element: 1 2 3 4

总结

C++中,我们可以使用pop_back()函数或erase()函数来删除std::list中的最后一个元素。pop_back()函数更为简单直观,而erase()函数可以更灵活地控制删除操作。选择合适的方法取决于具体的需求和使用场景。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程