1. 特殊的forward_list

单向链表的删除操作,真正删除的是某个元素后面的值(想想是为什么?)

操作 定义
lst.before_begin() 返回指向链表首元素之前不存在的元素的迭代器,此迭代器不能解引用。
lst.cbefore_begin() 同上,但是返回的是常量迭代器。
lst.insert_after(p, t) 在迭代器p之后插入元素。t是一个对象
lst.insert_after(p, n, t) 在迭代器p之后插入元素。t是一个对象,n是数量。若n是0则函数行为未定义
lst.insert_after(p, b, e) 在迭代器p之后插入元素。由迭代器b和e指定范围。
lst.insert_after(p, il) 在迭代器p之后插入元素。由il指定初始化列表。
emplace_after(p, args) 使用args在p之后的位置,创建一个元素,返回一个指向这个新元素的迭代器。若p为尾后迭代器,则函数行为未定义。
lst.erase_after§ 删除p指向位置之后的元素,返回一个指向被删元素之后的元素的迭代器,若p指向lst的尾元素或者是一个尾后迭代器,则函数行为未定义。
lst.erase_after(b, e) 类似上面,删除对象换成从b到e指定的范围。

eg. 如下输出为2468

 forward_list<int> vi = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };auto prev = vi.before_begin();auto curr = vi.begin();while (curr != vi.end()){if (*curr % 2){curr = vi.erase_after(prev);}else {prev = curr;curr++;}}auto curr2 = vi.begin();while (curr2 != vi.end()) {cout << *curr2;curr2++;} 

2. 改变大小

c.resize(n) 调整c的大小为n个元素,若n<c.size(),则多出的元素被丢弃。若必须添加新元素,对新元素进行值初始化
c.resize(n, t) 调整c的大小为n个元素,任何新添加的元素都初始化为值t

【引用】

  1. 代码 https://github.com/thefistlei/cplusprimer/blob/main/cprimer/cprimer/orderContainer.h

C++ Primer 5th笔记(9)chapter9 顺序容器 forward_list相关推荐

  1. C++ Primer 5th笔记(9)chapter9 顺序容器 vector 容器的自增长 容器适配器

    1. vector 容器的自增长:当插入元素当存储空间不足时,vector 必须重新分配存储空间(比如将新空间大小增加为当前大小的2倍) 管理容量的成员函数 操作 定义 c.shrink_to_fit ...

  2. C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值

    1. 容器对象的构造和赋值 1.1 构造 C c; C c; //默认构造函数 C c1(c2) C c1=c2; C c{a,b,c,-} C c={a,b,c,-} C c(b,e)//eg. l ...

  3. C++ Primer 5th笔记(chap 11)关联容器

    •map •multimap •set •multiset •set •unordered_map •unordered_set •unordered_multimap •unordered_mult ...

  4. C++primer十万字笔记 第九章 顺序容器

    顺序容器   容器就是特定类型对象的集合,顺序容器为程序员提供了控制元素存储和访问顺序的能力.这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应.标准库提供了三种容器类型. 顺序容器概述  标 ...

  5. C++ primer 5th笔记

    目录2022年11月25日 周五 阴 第一.二章:变量和基本类型 基本内置类型 unsigned float与double 'A'与"A" 布尔类型转换时 初始化与赋值 初始化 声 ...

  6. C++ Primer 5th笔记(9)chapter9 顺序容器

    1. 定义:元素按位置进行存储和访问.元素的排列次序与元素值无关,而是由元素添加到容器的次序决定的. 容器类型 定义 优点 缺点 string 可变大小数组 支持快速随机访问 在尾部之外的位置插入或删 ...

  7. C++ Primer 5th笔记(9)chapter9 顺序容器 string

    1. string构造 string s; 定义一个新的空string对象,命名为s string s(cp); 定义一个新的string对象,用cp所指向的(以空字符null结束的)C风格字符串初始 ...

  8. C++ Primer 5th笔记(9)chapter9 顺序容器 get insert delete

    insert.delete需要解决两个问题: 在什么位置插入? 返回什么位置? 1. 访问对象 操作 定义 c.back(); 返回c中尾元素的引用, 若c为空, 函数行为未定义. c.front() ...

  9. C++ Primer 5th笔记(chap 11)关联容器---无序容器

    无序关联容器 unordered associative container •unordered_map •unordered_set •unordered_multimap •unordered_ ...

最新文章

  1. 弹出层,div的写法
  2. promise的大白话讲解
  3. linux下删除文件名乱码文件
  4. python3 并行计算_Python-并行计算
  5. Linux系统编程---6(信号的机制,信号4要素,Linu常规信号表,定时器)
  6. Maven之生成测试覆盖度的插件cobertura-maven-plugin的使用
  7. 使用MinGW编译Psycopg2
  8. Algorithm(1) - Karatsuba multiplication
  9. MySQL优化(三):优化数据库对象
  10. 主进程退出后子进程还会存在吗?_[docker]从一个实例,一窥docker进程管理
  11. 双变量空间自相关_【数据分析】变量探索分析
  12. 学习c语言的编程游戏,扫雷游戏-C语言编程学习
  13. 在Linux下安装GmSSL
  14. nvidia驱动缓存能清理吗?
  15. 操作系统添加系统调用+内核编译
  16. Java 错别字检查接口 API
  17. 国信证券金色阳光版修改增强,还有闪电下单爽啊
  18. 在windbg调试的时候 针对ecx和eax说明
  19. 2022-2027年中国农村小额贷款行业市场调研及未来发展趋势预测报告
  20. 制作U盘启动来安装Linux系统的具体方法(图文)

热门文章

  1. background-attachment: fixed的用法
  2. 汽车故障检测软件_汽车没故障,定期保养,为啥尾气检测通不过?老司机说出关键...
  3. python读取文件名存到list_批量读取文件夹中的文件名
  4. python爬虫提取a标签_Python爬虫 Pyppeteer获取a标签的文本和链接
  5. 数据中心水冷系统一次泵与二次泵的选择
  6. 中央空调水系统与制冷系统运行参数
  7. 使用DCIM软件确保数据中心符合DCOI
  8. 成功解决OpenVideoCall(不可用)以及MSB8020 The build tools for v141 (Platform Toolset = ‘v141‘) cannot be found
  9. DataScience:对严重不均衡数据集进行多种采样策略(随机过抽样、SMOTE过采样、SMOTETomek综合采样、改变样本权重等)简介、经验总结之详细攻略
  10. CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)