练习9.27:

编写程序,查找并删除forward_list<int>中的奇数元素。

解答:

这段程序在本节已经给出来了,不过,forward_list是单向链表,比较特殊,所以这段程序还是值得花点时间看看的。

#include <iostream>
#include <forward_list>using namespace std;int main(){forward_list<int> flst{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };auto prev = flst.before_begin();auto curr = flst.begin();while (curr != flst.end()){if (*curr % 2){curr = flst.erase_after(prev);}else{prev = curr;++curr;}}for (auto i : flst){cout << i << " ";}cout << endl;
}

练习9.28:

编写函数,接受一个forward_list<string>和两个string共三个参数。函数应在链表中查找第一个string,并将第二个string插入到紧接着第一个string之后的位置。若第一个string未在链表中,则将第二个string插入到链表末尾。

解答:

#include <iostream>
#include <forward_list>
#include <string>
using namespace std;void myFunc(forward_list<string>& flst, string str1, string str2){auto perv = flst.before_begin();auto curr = flst.begin();while (curr != flst.end()){if (*curr == str1){flst.insert_after(curr, str2);return;}perv = curr;++curr;}flst.insert_after(perv, str2);
}int main(){forward_list<string> flist{ "apple", "melon", "pear", "banana" };myFunc(flist, "pear", "watermelon");for (auto i : flist){cout << i << " ";}cout << endl;myFunc(flist, "house", "pineapple");for (auto i : flist){cout << i << " ";}cout << endl;
}

练习9.29:

假定vec包含25个元素,那么vec.resize(100)会做什么?如果接下来调用vec.resize(10)会做什么?

解答:

和314页list描述相似的处理方式。

#include <iostream>
#include <vector>using namespace std;int main(){vector<int> vec(25, 99);cout << "Original vec vessel elements" << endl;for (auto i : vec){cout << i << " ";}cout << endl;vec.resize(100);cout << "Resize the vessel to 100, the elements" << endl;for (auto i : vec){cout << i << " ";}cout << endl;vec.resize(25);cout << "Resize the vessel to 25, the elements" << endl;for (auto i : vec){cout << i << " ";}cout << endl;}

练习9.30:

接受单个参数的resize版本对元素类型有什么限制(如果有的话)?

解答:

限制能想到的只有一个。

【引用】如果容器保存对的是类类型元素,且resize想容器添加新元素,则我们必须提供初始值,或者元素类型必须提供一个默认构造函数。

第九章 9.3.4节练习 9.3.5节练习相关推荐

  1. 《金融学》笔记 第九章 货币需求、供给、均衡

    <金融学>笔记 第九章 货币需求.供给.均衡 前言 在<<金融学>笔记>中开了一个头,现在完善具体细节. 金融范畴篇 第一章 货币的本质 第二章 货币制度 第三章 ...

  2. perl5 第九章 关联数组/哈希表

    第九章 关联数组/哈希表 by flamephoenix 一.数组变量的限制 二.定义 三.访问关联数组的元素 四.增加元素 五.创建关联数组 六.从数组变量复制到关联数组 七.元素的增删 八.列出数 ...

  3. Python计算机视觉:第九章 图像分割

    第九章 图像分割 9.1 更新用户 9.1.1 编辑表单 9.1.2 编辑失败 9.1.3 编辑成功 9.2 权限限制 9.2.1 必须先登录 9.2.2 用户只能编辑自己的资料 9.2.3 更友好的 ...

  4. 人工智能:第九章 Agent (艾真体)

    第九章 Agent (艾真体) 教学内容:介绍Agent的基本概念,使读者对Agent有个初步了解. 教学重点:艾真体及其要素 教学难点:艾真体的BDI(信念.愿望和意图)模型.艾真体的结构分类 教学 ...

  5. PE学习(九)第九章:TLS 动态TLS与静态TLS

    第九章:线程局部存储 PEB,在NT中,该结构可以从进程空间的FS:[0x30]处找到,PEB描述的信息主要包括:进程状态.进程堆.PE映像信息等,其中Ldr记录了进程加载进内存的所有模块的基地址. ...

  6. 《Go语言圣经》学习笔记 第九章 基于共享变量的并发

    <Go语言圣经>学习笔记 第九章 基于共享变量的并发 目录 竞争条件 sync.Mutex互斥锁 syn.RWMutex读写锁 内存同步 syn.Once初始化 竞争条件检测 示例:并发的 ...

  7. Lisp-Stat翻译 —— 第九章 统计绘图窗体

    2019独角兽企业重金招聘Python工程师标准>>> 第九章 统计绘图窗体 除了前几章略述的绘图窗体原型提供的基本绘图工具之外,Lisp-Stat里的统计绘图还需要用来管理数据和将 ...

  8. cups源码下载 linux_【正点原子FPGA连载】第九章Linux显示设备的使用-领航者ZYNQ之linux开发指南...

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  9. (数据库系统概论|王珊)第九章关系查询处理和关系优化-第三节:查询优化之代数优化

    注意: 关系代数有关符号,大家可能又不熟悉了,点击跳转:(数据库系统概论|王珊)第二章关系数据库-第四节:关系代数 文章目录 一:关系代数表达式等价变换规则 (1)连接.笛卡尔积.并.交的交换律 (2 ...

  10. 《深入理解 Spring Cloud 与微服务构建》第九章 熔断器 Hystrix

    <深入理解 Spring Cloud 与微服务构建>第九章 熔断器 Hystrix 文章目录 <深入理解 Spring Cloud 与微服务构建>第九章 熔断器 Hystrix ...

最新文章

  1. #pragma once 是什么意思?
  2. 操作系统之存储管理——FIFO算法和LRU算法
  3. 验证码广告:站长增加收入新渠道
  4. Spark1——介绍
  5. 画了个Android
  6. docker搭建私有仓库
  7. oracle的rac环境,RAC环境数据库的备份
  8. JAVA延迟执行(thread方式和timer方式)
  9. 继续来研究JScript解析引擎的GC问题
  10. RTSP之主流安防厂家地址
  11. pythonplatform标识_Python utils.platform方法代码示例
  12. 计算机专业大学生买什么u盘合适,12款热销U盘横评:哪款U盘最值得买?
  13. 一键清理C盘垃圾文件,让你的电脑运行飞起
  14. 三个优秀的Android图表开源控件
  15. Log4j日志配置详解
  16. linux下hex文件到bin文件的格式转化,bin文件转换为hex文件操作步骤解析
  17. 【家庭网络】申请安装移动宽带过程及简单建议
  18. Linux硬盘分区方案与分区格式介绍
  19. 分库分表之MyCat应用
  20. Python常用英文单词

热门文章

  1. 被严重忽略的一款《经济学人》官方产品
  2. 计算机桌面的任务栏重叠,win10电脑任务栏右下角图标重叠如何解决
  3. WordPress收费付费下载资源源码模板
  4. Oracle数据库中设置快捷键
  5. 陕西省最优秀的几所高中-五大名校,西北工业大学附属中学蝉联第一
  6. dnp服务器未响应,360浏览器没响应怎么办 360浏览器未响应死机解决方法分享
  7. “HOW CAN WE KNOW THE DANCER FROM THE DANCE?”: COGNITIVE POETICS AND WILLIAM BUTLER【翻译】
  8. 视频号如何认证个人黄V认证
  9. flutter与node.js的前后端项目
  10. .验证哥德巴赫猜想,哥德巴赫猜想的内容是:任何一个大于2的偶数都能写成写成两个素数和的形式。 设计一个函数 int isPrime(int n)判断n是否为素数,如果n是素数,函数返回值1,否则返