当前位置: 首页 > news >正文

list使用

list的使用于string的使用都类似,首先通过查阅来看list有哪些函数:

可以看到函数还是蛮多的,我们值重点一些常用的和常见的:

1.关于push_back,push_front,和对应迭代器的使用

//关于push_back和push_front
void test_list1()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);lt.push_front(10);lt.push_front(20);//范围forfor (auto e : lt){cout << e << " ";}cout << endl;
}

2.关于insert:

void test_list2()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);lt.push_front(10);lt.push_front(20);//insert://第五个位置插入数据:(对应迭代器中无加法迭代,无法直接找到,需要遍历)//错误写法://lt.insert(lt.begin()+5, 10);//正确:auto it = lt.begin();/*for (size_t i = 0; i < 5; i++){++it;}lt.insert(it, 10);*///具体找到某个数并在其之前插入it = find(lt.begin(), lt.end(), 3);if (it != lt.end()){lt.insert(it, 30);// insert以后,it不失效*it *= 100;}
}

对应的insert的使用需要注意的是其不想string一样可以使用迭代器重载的“+”号,因为list是由指针

指向的所以“+”号重载起来只会影响效率,所以我们要使用insert或者erase的时候需要先找到要插

入的地方或者删除的元素才可以顺利插入。 

3.关于erase:

void test_list2()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);lt.push_front(10);lt.push_front(20);//erase://同理找到某个具体的数在删除:it = find(lt.begin(), lt.end(), 2);if (it != lt.end()){lt.erase(it);}//删除所有偶数it = lt.begin();while (it != lt.end()){if (*it % 2 == 0){it = lt.erase(it);}else{++it;}}}

 要注意的与insert相同。

4.关于reverse和sort

//reverse,sort
void test_list3()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);lt.push_front(10);lt.push_front(20);for (auto e : lt){cout << e << " ";}cout << endl;reverse(lt.begin(), lt.end());for (auto e : lt){cout << e << " ";}cout << endl;lt.reverse();for (auto e : lt){cout << e << " ";}cout << endl;lt.sort();for (auto e : lt){cout << e << " ";}cout << endl;}

这些就是对应的需要掌握的并且基础的

http://www.lryc.cn/news/136639.html

相关文章:

  • 【图解】多层感知器(MLP)
  • React(8)
  • ssm社区管理与服务系统源码和论文
  • Git多版本并行开发实践
  • 修复hive重命名分区后新分区为0的问题
  • Gin+微服务实现抖音视频上传到七牛云
  • go 连接操作MySQL
  • git常见的命令,问题和处理方式
  • Ubuntu环境下超好用的文件对比工具软件meld
  • Channel是什么?FileChannel类的常用方法
  • Python爬虫——scrapy_读书网数据入库和链接跟进
  • 前端常用linux命令
  • 制作高质量SVG的最佳工具,这些编辑软件你需要知道!
  • 四、MySQL性能优化
  • Oracle Database12c数据库官网下载和安装教程
  • spring依赖注入详解(下)
  • python的dataframe常用处理方法
  • k8s 自身原理之高可用
  • 游乐场vr设备虚拟游乐园vr项目沉浸体验馆
  • window10安装并使用oracle
  • [Mac软件]AutoCAD 2024 for Mac(cad2024) v2024.3.61.182中文版支持M1/M2/intel
  • Oracle 主从库目录不一致(异路径)的n种处理方案及效果
  • 创建型(一) - 简单工厂模式、工厂方法模式和抽象工厂模式
  • LeetCode3.无重复字符的最长子串
  • 鲁图中大许少辉博士八一新书《乡村振兴战略下传统村落文化旅游设计》山东省图书馆典藏
  • 如何发布自己的小程序
  • 【微服务】spring 条件注解从使用到源码分析详解
  • 客户案例:高性能、大规模、高可靠的AIGC承载网络
  • Flutter性能揭秘之RepaintBoundary
  • 29.Netty源码之服务端启动:创建EventLoopSelector流程