本文介绍了STL列表中的删除方面。

1.使用list :: erase():此函数的目的是从列表中删除元素。使用此功能可以删除范围内的单个或多个连续元素。该函数有两个参数,开始迭代器和结束迭代器。
2.时间复杂度: O(n)其中(n是列表的大小)。

#include #include // for list operations using namespace std;   int main() {     list list1={10,15,20,25,30,35};     list::iterator it = list1.begin();     list::iterator it1 = list1.begin();     advance(it,2);     advance(it1,5);           cout <<     for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;     list1.erase(it);     cout <<    for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;           it = list1.begin();     advance(it,2);     list1.erase(it,it1);     cout <<    for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;         } 

输出:

原始列表是:10 15 20 25 30 35 使用delete()删除1个元素后的列表:10 15 25 30 35 使用delete()删除多个元素后的列表:10 15 35 

2.使用list :: pop_front()和list :: pop_back()

1.pop_back():此函数从列表中删除最后一个元素。这样可以将列表的大小减少1。

时间复杂度:O(1)

2.pop_front():此函数从列表中删除第一个元素,并移动后续元素。这样可以将列表的大小减少1。

时间复杂度:O(1)

#include #includeusing namespace std;   int main() {     list list1={10,15,20,25,30,35};     cout <<     for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;     list1.pop_front();     cout <<     for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;     list1.pop_back();      cout <<     for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;       } 

输出:

原始列表是:10 15 20 25 30 35 使用pop_front()删除第一个元素后的列表:15 20 25 30 35 使用pop_back()删除最后一个元素后的列表:15 20 25 30 

3.使用remove()和remove_if()

1.remove():此函数删除在其参数中传递的值的所有出现。它与“ erase()”的区别在于“ erase()”按位置删除值,而“ remove()”则删除传递的值。列表的大小减少了已删除的出现次数。
时间复杂度:O(n)

2.remove_if():此函数删除将“ true”返回给在其参数中传递的函数的值的出现。
时间复杂度:O(n)

  #include #includeusing namespace std; bool is_div_5(const int& num) { return num%5==0;}    int main() {     list list1={10,14,20,22,30,33,22};     cout <<     for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;           list1.remove(22);     cout <<     for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;     list1.remove_if(is_div_5);     cout <<     for (list::iterator i=list1.begin(); i!=list1.end(); i++)        cout << *i << " ";            cout << endl;       } 

输出:

原始列表是:10 14 20 22 30 33 22 删除所有22次出现后的列表:10 14 20 30 33 删除的列表:15的所有倍数之后4 33 

学习更多,以及免费领取学习资料和教程,请点击下方了解更多链接:

python删除列表元素_追求简单C++之删除STL列表的元素相关推荐

  1. python打造excel神器_超简单:用Python让Excel飞起来

    前言 如何获取学习资源 章Python快速上手 1.1为什么要学习用Python控制Excel 1.2Python编程环境的搭建 1.2.1安装Python官方的编程环境IDLE 1.2.2安装与配置 ...

  2. python批量删除特定字符_根据某个特定字符删除一行

    前言 最近接了几个新项目的需求,为了快速开发,我们的策略是:基于原来的一套维定项目代码及数据库基础,去开发新的项目,一般步骤如下: 在原来的代码git基础上拉出一个新的git项目地址 修改代码的项目名 ...

  3. python矩阵中找满足条件的元素_从numpy数组中取出满足条件的元素示例

    例如问题:从 arr 数组中提取所有奇数元素. input:arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) output: #> array([1, ...

  4. iphone照片永久删除怎么恢复_微信数据怎么永久删除不被恢复?只删除聊天记录没用,打开这里彻底删除!...

    微信数据怎么永久删除不被恢复?这个问题已经越来越让人头疼,似乎单纯的删掉与对方的对话框已经不能再让人放心,微信里有太多不想被人知道的隐私,不管是工作还是生活,学会彻底删除微信聊天记录,已经越来越重要. ...

  5. mysql逻辑删除的问题_数据库表涉及-逻辑删除

    对于只进行逻辑删除的表,如 CREATE TABLE `pics` ( `pid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `aid` bigint( ...

  6. linux删除用户所有信息_如何在Linux上删除用户(以及删除所有跟踪)

    linux删除用户所有信息 Fatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / Shutterstock Deleting ...

  7. python列表常用方法_第24p,必须掌握,列表的常用方法

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第24篇文章,第二阶段的课程:Python基础知识:Python中的列表之列表的常用方法. 学习本课程,建议先看一遍:[计算机基础知 ...

  8. python爬微博关键字_一个简单的python爬虫实践,爬取包含关键词的新浪微博

    此项目主要功能是通过微博"搜索"页面,每天自动爬取所有包含自定list中词汇的微博原数据.低速可控,简单粗暴,适合用来有针对性的搜集数据量不是很大的包含关键词的微博,每日可爬3-6 ...

  9. js删除两个集合中共同元素_多个集合中的共同和独特元素

    js删除两个集合中共同元素 本周,我们将暂时中断较高级别的问题和技术文章,以解决我们中许多人可能面临的一些代码问题. 没什么花哨的或太辛苦的,但是有一天它可能会节省您15分钟的时间,偶尔回到基础上也很 ...

最新文章

  1. Linux 下使用命令行查看 內核版本 | 系統版本 | cpu 位數 | 內存使用
  2. [python爬虫] BeautifulSoup设置Cookie解决网站拦截并爬取蚂蚁短租
  3. YaoLingJump开发者日志(七)
  4. SBO中的manager用户已锁定
  5. shell grep 变量_老司机给出的关于 shell 脚本的8个建议,必收!
  6. lua 字符串分割_Lua函数式编程(中)
  7. 软件工程的本质,一点个人理解
  8. 修改WordPress主题,中文显示乱码的解决办法
  9. 集成springboot案例_SpringBoot开发者都在用的五款优质扩展,每个都很能打!
  10. 雕虫晓技(十) Android超简单气泡效果
  11. 基于python sklearn的 SVM支持向量机 类实现
  12. 转载——yum源的超级简单配置
  13. python实战项目(Django技术点)
  14. 【金蝶K3】新/老单据转换流程相关表说明(单据转换流程下推老单,钩稽关系可为严格控制)
  15. [蓝桥杯] 青出于蓝胜于蓝
  16. 计算机程序设计专业大学排名,全国计算机专业大学排名一览表
  17. JB的Shell之旅-30分钟带你入门
  18. 语音唤醒的具体技术方案
  19. 好朋友结婚了,祝福你们!
  20. 色彩大全,色彩配色大全

热门文章

  1. Linux缺少qt5core,关于qt5:无法运行Qt应用:找不到版本“ Qt_5”
  2. koa2入门(3)mongoose 增删改查
  3. Navicat使用教程:使用Navicat Premium 12自动执行数据库复制(四)
  4. [轮子系列]Google Guava之CharMatcher源码分析
  5. 怎么运行Typescript
  6. 工作者对象HttpWorkerRequest
  7. iOS 开发-文件下载原理
  8. BOA+CGI+SQLite 随笔
  9. windows 8   远程桌面(RemoteFX )
  10. 国产海量存储系统的新突破