21xrx.com
2024-11-08 22:31:24 Friday
登录
文章检索 我的文章 写文章
C++列表移除操作
2023-07-10 18:07:54 深夜i     --     --
C++ 列表 移除操作 链表 节点

在C++中,列表(list)是一种非常实用的数据结构,它可以用于在程序中快速地插入或移除元素。在列表中进行移除操作非常简单,只需要使用erase函数即可。

erase函数有两种形式,一种是删除单个元素,另一种是删除一段元素。下面我们分别介绍一下这两种形式的使用方法。

删除单个元素

要删除单个元素,需要指定要删除的元素的位置。假设我们有一个列表,其中有4个元素,分别是 a、b、c、d,如果要删除元素d,可以使用以下代码:


#include <list>

#include <iostream>

using namespace std;

int main() {

  list<char> mylist = 'c';

  auto it = mylist.begin();

  advance(it, 3); // 将迭代器it移动到第4个元素(即d)

  mylist.erase(it); // 删除元素d

  for(auto& ele : mylist) cout << ele << " "; // 输出 a b c

  return 0;

}

在代码中,我们使用了列表的begin函数获取一个迭代器,然后使用advance函数将其移动到要删除的元素的位置(第4个元素)。最后,调用erase函数,将要删除的元素从列表中移除。在打印完剩余的元素后,程序输出 a b c。

删除一段元素

要删除一段元素,需要指定要删除的起始和结束位置。假设我们有一个列表,其中有6个元素,分别是 1、2、3、4、5、6,如果要删除区间 [2, 4] 中的元素(即 2、3、4),可以使用以下代码:


#include <list>

#include <iostream>

using namespace std;

int main() {

  list<int> mylist = 1;

  auto it1 = mylist.begin();

  advance(it1, 1); // 将迭代器it1移动到第2个元素(即2)

  auto it2 = mylist.begin();

  advance(it2, 4); // 将迭代器it2移动到第5个元素(即5)

  mylist.erase(it1, it2); // 删除区间[2, 4]中的元素

  for(auto& ele : mylist) cout << ele << " "; // 输出 1 5 6

  return 0;

}

在代码中,我们同样使用了列表的begin函数获取两个迭代器,分别将它们移动到要删除的区间的起始和结束位置,然后调用erase函数。在程序输出结果中,可以看到已经成功删除了2、3、4三个元素。

总结

以上就是在C++中使用列表移除元素的方法。通过简单的erase函数调用,可以轻松快捷地完成单个或多个元素的删除。列表是一种非常实用的容器,如果您需要在程序中频繁地增加或删除元素,不妨尝试一下它。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复