c++primer-p101.ex3.24
要求使用迭代器
读入一组整数并把它们存入一个vector对象
1. 将相邻每对整数和输出
2. 先输出第一个和最后一个数的和,然后是第二个和倒数第二个...等等
自己写的:
- #include<iostream>
- #include<vector>
- using namespace std;
- void sumOffirst_last(const vector<int> &p){
- for(auto t=p.begin();t!=p.end()-1;t++)
- cout<<*t+*(t+1)<<(t!=p.end()-2?" ":"\n");
- }
- void sumOfnearby(const vector<int> &p){
- auto beg=p.begin(),end=p.end();
- auto mid=beg+(end-beg)/2;
- if(p.size()%2!=0)
- mid++;
- for(auto t=beg;t!=mid;t++)
- cout<<*t+*(end-1-(t-beg))<<(t!=mid-1? " ":"\n");
- }
- int main()
- {
- vector<int> v;
- for(int a;cin>>a;v.push_back(a));
- sumOffirst_last(v);
- sumOfnearby(v);
- return 0;
- }
参考答案:
- #include <iostream>
- #include <vector>
- using std::vector; using std::cout; using std::endl; using std::cin;
- int main()
- {
- vector<int> v;
- for (int buffer; cin >> buffer; v.push_back(buffer));
- if (v.size() < 2)
- {
- cout << " please enter at least two integers";
- return -1;
- }
- for (auto it = v.cbegin(); it + 1 != v.cend(); ++it)
- cout << *it + *(it + 1) << " ";
- cout << endl;
- for (auto lft = v.cbegin(), rht = v.cend() - 1; lft <= rht; ++lft, --rht)//!!!!
- cout << *lft + *rht << " ";
- cout << endl;
- return 0;
- }
主要在输出第二种形式的和,自己写的太过繁琐,用迭代器可以直接确定倒数的对象,无需用长度去算。
c++primer-p101.ex3.24的更多相关文章
- 7.24,《C Primer Plus》复习第十五章第二小题
编写一个程序,通过命令行参数读取两个二进制字符串,对这两个二进制数使用~运算符,&运算符.|运算符,并以二进制字符串形式打印结果(如果无法使用命令行环境,可以通过交互式让程序读取字符串) 编写 ...
- 《3D Math Primer for Graphics and Game Development》读书笔记1
<3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...
- 两个NOI题目的启迪8皇后和算24
论出于什么原因和目的,学习C++已经有一个星期左右,从开始就在做NOI的题目,到现在也没有正式的看<Primer C++>,不过还是受益良多,毕竟C++是一种”低级的高级语言“,而且NOI ...
- C++ Primer : 第九章 : vector变长、string的其他操作以及容器适配器
vector变长机制.string的其他构造方法,添加.替换和搜索操作,string比较和数值转换,最后是容器适配器. vector对象是如何增长的 vector和string类型提供了一些成员函数, ...
- 转载:看c++ primer 学习心得
学习C++ Primer时遇到的问题及解释 chenm91 感觉: l 啰嗦有时会掩盖主题:这本书确实有些啰嗦,比如在讲函数重载的时候,讲了太长一大段(有两节是打了*号的,看还是不看 ...
- ###学习《C++ Primer》- 2
点击查看Evernote原文. #@author: gr #@date: 2014-10-01 #@email: forgerui@gmail.com Part 2: STL顺序容器(第9章) 一.标 ...
- C++ Primer 5th 第1章 开始
*****代码在Ubuntu g++ 5.31 / clang++ 3.8(C++11)下编写调试***** 每个C++程序必须有一个main( )函数,main( )函数的返回值也必须是int类型, ...
- 《C++ Primer Plus》学习笔记10
<C++ Primer Plus>学习笔记10 <<<<<<<<<<<<<<<<<&l ...
- 《C++ Primer》 chapter 15 TextQuery
<C++ Primer>中第15章为了讲解面向对象编程,举了一个例子:设计一个小程序,能够处理查询给定word在文件中所在行的任务,并且能够处理“非”查询,“或”查询,“与”查询.例如执行 ...
随机推荐
- SQL Server 2016 —— 聚集列存储索引的功能增强
作者 Jonathan Allen,译者 邵思华 发布于 2015年6月14日 聚集列存储索引(CC Index)是SQL Server 2014中两大最引 ...
- Linux 系统实时监控 —— Glances
早些时候,我们提到过有很多可以用来监视系统性能的 Linux 系统监视工具. 但我们估计,或许更多的用户会倾向与绝大多数 Linux 发行版都带的工具 (top 命令). top 命令是 Linux ...
- 《Advanced Bash-scripting Guide》学习(十七):用more来查看gzip文件
本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 #!/bin/bash #使用more查看gzip文件 NOARGS= NOTF ...
- 163的Ubuntu apt镜像源
在/etc/apt/sources.list靠前的地方加入即可. 说明:http://mirrors.163.com/.help/ubuntu.html #15.10 wily, 15.04 vivi ...
- hzau 1209 Deadline(贪心)
K.Deadline There are N bugs to be repaired and some engineers whose abilities are roughly equal. And ...
- MySQL 索引 视图 触发器 存储过程 函数
1.索引 索引相当于图书的目录,可以帮助用户快速的找到需要的内容. 数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万 ...
- HihoCoder1407 后缀数组二·重复旋律2
重复旋律2 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为长度为 N 的数构成的数列.小Hi在练习过很多 ...
- java06-数组动手动脑
1.阅读QiPan.java示例程序了解如何利用二维数组和循环语句绘制五子棋盘. 定义了一个私有的二维数组作为棋盘.并定义了长度.之后打印符号使之连接起来作为棋盘在控制台显示.建立缓冲区用来读取输入的 ...
- The Suspects (并查集)
个人心得:最基础的并查集经典题.借此去了解了一下加深版的即加权并查集,比如食物链的题目,这种题目实行起来还是有 一定的难度,不仅要找出与父节点的关系,还要在路径压缩的时候进行更新,这一点现在还是没那么 ...
- DP 问题
什么时候使用DP: 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理.(这句话可理解为先将复杂的问题简单化, 达到最简后的解题公式同样可以解复杂情况 ...