📌  相关文章
📜  用于从链接列表中删除最后一次出现的项目的 C++ 程序(1)

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

用于从链接列表中删除最后一次出现的项目的 C++ 程序

在处理链接列表时,我们可能需要删除某个特定元素,而删除的元素可能不是第一个或最后一个。这时,我们可以编写一个 C++ 程序来寻找并删除最后一次出现的元素。

思路

由于要删除最后一次出现的元素,我们需要遍历整个列表,记录下每个元素出现的位置,并找到最后一个出现的位置。然后再将这个位置的元素删除即可。

代码

下面是一个使用 vector 来实现的示例程序,其中 remove_last 函数用于删除最后一次出现的元素:

#include <iostream>
#include <vector>

template <typename T>
void remove_last(std::vector<T>& v, const T& val) {
    int pos = -1;
    for (int i = 0; i < v.size(); ++i) {
        if (v[i] == val) {
            pos = i;
        }
    }
    if (pos != -1) {
        v.erase(v.begin() + pos);
    }
}

int main() {
    std::vector<int> vec{1, 2, 3, 4, 2, 5, 6};

    // 删除最后一次出现的 2
    remove_last(vec, 2);

    // 输出删除后的列表
    for (auto& num : vec) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

上述代码中,remove_last 函数接受两个参数:一个是要操作的 vector,另一个是要删除的元素。在函数中,首先遍历整个 vector,记录下每个元素出现的位置,并找到最后一个出现的位置。然后,如果找到了目标元素,就使用 vectorerase 函数将该元素从 vector 中删除。

结束语

在本文中,我们介绍了如何编写一个 C++ 程序来删除链接列表中最后一次出现的元素。使用 vector 实现的示例程序可以轻松地移植到其他容器或算法中。希望本文能对你有所帮助,更多 C++ 编程技巧请关注我的博客。