习题11.1 algorithm头文件定义了一个count的函数,其功能类似于find。这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。编写程序读取一系列int型数据,并将它们存储到vector对象中,然后统计某个指定的值出现了多少次。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//读取一系列int数据,并将它们存储到vector对象中,
//然后使用algorithm头文件中定义的名为count的函数,
//统计某个指定的值出现了多少次
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    int ival , searchValue;
    vector<int> ivec;
    //读入int型数据并存储到vector对象中,直至遇到文件结束符
    cout<<"Enter some integers(Ctrl+Z to end): "<<endl;
    while(cin >> ival)
        ivec.push_back(ival);
    cin.clear(); // 使输入流重新有效
    //读入欲统计其出现次数的int值
    cout<<"Enter an integer you want to search: "<<endl;
    cin>>searchValue;
    //使用count函数统计该值出现的次数并输出结果
    cout<<count(ivec.begin() , ivec.end() , searchValue)
        <<"  elements in the vector have value "
        <<searchValue<<endl;
    return 0;
}

习题11.3 用accumulate统计vector<int>容器对象中的元素之和。

解答:

 1 //读取一系列int型数据,并将它们存储到vector对象中,
 2 //然后使用algorithm头文件中定义的名为accumulate的函数,
 3 //统计vector对象中的元素之和
 4 #include<iostream>
 5 #include<vector>
 6 #include<numeric>
 7 using namespace std;
 8
 9 int main()
10 {
11     int ival;
12     vector<int> ivec;
13
14     //读入int型数据并存储到vector对象中,直至遇到文件结束符
15     cout<<"Enter some integers(Ctrl+z to end): "<<endl;
16     while(cin >> ival)
17         ivec.push_back(ival);
18
19     //使用accumulate函数统计vector对象中的元素之和并输出结果
20     cout<<"summation of elements in the vector: "
21         <<accumulate(ivec.begin() , ivec.end() , 0)  //统计vector对象中的元素之和
22         <<endl;
23
24     return 0;
25 }

11.13 解释三种插入迭代器的区别。

解答:

三种插入迭代器的区别在于插入元素的位置不同:

  • back_inserter,使用push_back实现在容器末端插入。
  • front_inserter,使用push_front实现在容器前段插入。
  • inserter,使用insert实现在容器中指定位置插入。

因此,除了所关联的容器外,inserter还带有第二个实参——指向插入起始位置的迭代器。

本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3240865.html,如需转载请自行联系原作者

《C++ primer》--第11章相关推荐

  1. C++ Primer 第11章 泛型算法 学习总结

    文章目录 11.2 算法 11.2.1 只读算法 **1.find函数** **2.accumulate函数** **3.find_first_of 函数** 11.2.2 写容器元素算法 1.fil ...

  2. C++ Primer 第11章 习题11.16

    //11.16.cpp //使用copy算法将一个文件的内容写到标准输出中 #include<iostream> #include<cstdlib> #include<f ...

  3. 【C++ Primer 第11章】2. 关联容器操作

    练习答案 一.访问元素 关联容器额外类型别名  key_type 此容器类型的关键字类型 mapped_type 每个关键字关联的类型,只 适用于map mapped_type 对于set,与key_ ...

  4. C++ primer 第11章 关联容器

    文章目录 使用关联容器 map示例 关联容器概述 定义关联容器 关联容器值初始化 multimap和multiset 关键字类型的要求 pair类型 pair上的操作 关联容器操作 关联容器额外的类型 ...

  5. c++primer plus 第11章 编程题第7题

    c++primer plus 第11章 编程题第7题 #pragma once #ifndef COMPLEX0_H_ #define COMPLEX0_H_ #include<iostream ...

  6. c++ primer 第14章 习题解答

    14.1节 14.1答 不同点: 重载操作符必须具有至少一个class或枚举类型的操作数. 重载操作符不保证操作数的求值顺序,例如对&&和| | 的重载版本不再具有"短路求值 ...

  7. C++Primer 第10章lambda表达式

    C++Primer 第10章lambda表达式 泛型编程 咱们继续高歌猛进,下面我给大家继续讲关于算法的故事. 我们知道标准库容器中定义的算法大多数独立在算法之外,通常这些算法是通用的.它们可以处理不 ...

  8. 《C++Primer》第九章-顺序容器-学习笔记(1)-顺序容器定义与操作

    <C++Primer>第九章-顺序容器-学习笔记(1) 文章目录 <C++Primer>第九章-顺序容器-学习笔记(1) 摘要 顺序容器的定义 容器元素的初始化 将一个容器初始 ...

  9. C++ Primer 第四章

    C++ Primer 第四章&第五章 2021.7.14 4.1 基础 使用关键字decltype时,若表达式求值结果为lvalue,则得到一个引用类型 int *p; int t; decl ...

  10. 0与1c语言编译,C语言程序设计(07776-1)第11章编译预处理课案.ppt

    C语言程序设计(07776-1)第11章编译预处理课案.ppt 第11章 编译预处理 主要内容 宏定义 文件包含 条件编译 程序案例 小结 习题 11-1 宏定义 不带参数的宏定义 带参数的宏定义 终 ...

最新文章

  1. 栈与队列3——用递归和栈操作逆序一个栈
  2. java 监听队列_spring+activemq实战之配置监听多队列实现不同队列消息消费
  3. C++11 FAQ中文版:std::function 和 std::bind
  4. Istio 在阿里云容器服务的部署及流量治理实践
  5. failed to open log file_C++中glog源码剖析以及如何设计一个高效 log模块
  6. 书籍《智能交通》-观后感-2021年12月-下期分享
  7. 深度系统安装移动硬盘启动_深度系统如何安装_电脑知识
  8. 谈软件开发项目管理之需求变更
  9. CMMI5访谈学习笔记(项目经理角色)(转)
  10. 鸿蒙系统基于java,鸿蒙系统基于Linux打造,其本质还是安卓系统?
  11. STM32 CAN通信协议详解—小白入门(一)
  12. C++ 资源大全中文版
  13. 软件测试方案和计划的区别和联系
  14. 爆破神器 Hydra 的使用
  15. 双拼输入法的原理及上手方法
  16. DBPedia知识图谱详细介绍
  17. 我的世界无限贪婪服务器,我的世界无尽贪婪mod
  18. NI multism 设计单脉冲发生器实验报告
  19. 基于kubernetes-1.21.5 部署 Rook
  20. android x86 v2ex,v2ex签到脚本改进 - 就爱阅读网

热门文章

  1. 如何将CSS3 transforms应用于背景图像
  2. 减少HTTP请求的方法
  3. mysql数据库迁徙_Mysql数据迁徙方法工具解析
  4. bootstrap之glyphicon字体图标
  5. java 中加法递归_java 简单的加法 递归 从A加到B
  6. C语言手写二叉树(链式存储结构)
  7. ubuntu mysql双主热备配置_MySql双主热备配置
  8. body curl命令测试post_HTTP接口调试利器!4.8万Star的HTTP命令行客户端!
  9. 计算机包含着什么,计算机基础的包含是什么?
  10. SAS中修改一个表为编辑模式的时候不成功并给出警告的原因及解决办法