在C++中,可以使用STL链表的erase()函数来删除元素。对于元素类型为string的链表,可以按照以下步骤进行删除操作:

  1. 定义一个链表对象:
std::list<std::string> myList;
  1. 向链表中添加元素:
myList.push_back("element1");
myList.push_back("element2");
myList.push_back("element3");
  1. 使用erase()函数删除指定元素:
std::list<std::string>::iterator it = myList.begin();
while (it != myList.end()) {
    if (*it == "element2") {
        it = myList.erase(it);
    } else {
        ++it;
    }
}

在上述代码中,首先定义一个迭代器it,它指向链表的第一个元素。然后,使用while循环遍历链表中的每个元素。如果当前元素等于需要删除的元素,就使用erase()函数删除该元素,并将迭代器指向下一个元素。否则,迭代器向前移动。

  1. 输出链表中的剩余元素:
for (const std::string& element : myList) {
    std::cout << element << std::endl;
}

使用范围for循环遍历链表中的每个元素,并输出。

完整的代码示例如下:

#include <iostream>
#include <list>
#include <string>

int main() {
    std::list<std::string> myList;

    myList.push_back("element1");
    myList.push_back("element2");
    myList.push_back("element3");

    std::list<std::string>::iterator it = myList.begin();
    while (it != myList.end()) {
        if (*it == "element2") {
            it = myList.erase(it);
        } else {
            ++it;
        }
    }

    for (const std::string& element : myList) {
        std::cout << element << std::endl;
    }

    return 0;
}

运行上述代码,输出结果为:

element1
element3
``
C++中如何删除STL链表的元素元素类型为string

原文地址: http://www.cveoy.top/t/topic/iCdP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录