要求使用迭代器

读入一组整数并把它们存入一个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的更多相关文章

  1. 7.24,《C Primer Plus》复习第十五章第二小题

    编写一个程序,通过命令行参数读取两个二进制字符串,对这两个二进制数使用~运算符,&运算符.|运算符,并以二进制字符串形式打印结果(如果无法使用命令行环境,可以通过交互式让程序读取字符串) 编写 ...

  2. 《3D Math Primer for Graphics and Game Development》读书笔记1

    <3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...

  3. 两个NOI题目的启迪8皇后和算24

    论出于什么原因和目的,学习C++已经有一个星期左右,从开始就在做NOI的题目,到现在也没有正式的看<Primer C++>,不过还是受益良多,毕竟C++是一种”低级的高级语言“,而且NOI ...

  4. C++ Primer : 第九章 : vector变长、string的其他操作以及容器适配器

    vector变长机制.string的其他构造方法,添加.替换和搜索操作,string比较和数值转换,最后是容器适配器. vector对象是如何增长的 vector和string类型提供了一些成员函数, ...

  5. 转载:看c++ primer 学习心得

    学习C++ Primer时遇到的问题及解释 chenm91 感觉: l          啰嗦有时会掩盖主题:这本书确实有些啰嗦,比如在讲函数重载的时候,讲了太长一大段(有两节是打了*号的,看还是不看 ...

  6. ###学习《C++ Primer》- 2

    点击查看Evernote原文. #@author: gr #@date: 2014-10-01 #@email: forgerui@gmail.com Part 2: STL顺序容器(第9章) 一.标 ...

  7. C++ Primer 5th 第1章 开始

    *****代码在Ubuntu g++ 5.31 / clang++ 3.8(C++11)下编写调试***** 每个C++程序必须有一个main( )函数,main( )函数的返回值也必须是int类型, ...

  8. 《C++ Primer Plus》学习笔记10

    <C++ Primer Plus>学习笔记10 <<<<<<<<<<<<<<<<<&l ...

  9. 《C++ Primer》 chapter 15 TextQuery

    <C++ Primer>中第15章为了讲解面向对象编程,举了一个例子:设计一个小程序,能够处理查询给定word在文件中所在行的任务,并且能够处理“非”查询,“或”查询,“与”查询.例如执行 ...

随机推荐

  1. Eclipse下创建简单Servlet

    参考文章:一个简单的Servlet程序  http://blog.csdn.net/a153375250/article/details/50916428 Servlet简介 Servlet是什么?简 ...

  2. struts2常见配置解决错误There is no mapped for namespace[/] and action name

    我碰到这个错误的原因是我把配置文件名写成了Struts.xml,改成struts.xml就可以了. 在确定struts.xml本身并没有写错的情况下,那么发生错误有可能是路径,配置文件名. 如果实在找 ...

  3. android问题 This version of android studio is incompatible with the gradle version used.

    http://blog.csdn.net/sinat_15417921/article/details/51907728 问题背景 因为项目app分包需要,将工程的graddle版本升至了2.2.0 ...

  4. MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache

    转自:http://www.mongoing.com/archives/2540 传统数据库引擎的数据组织方式,一般存储引擎都是采用 btree 或者 lsm tree 来实现索引,但是索引的最小单位 ...

  5. 使用for循环添加点击事件时,获取i值的方法

    比如页面上有一个ul,数个li,现在给li添加点击事件. var li = document.getElementsByTagName("li"); for(var i = 0; ...

  6. sass入门篇

    CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作. 通俗的说,“CSS ...

  7. 关于/usr/bin/ld: cannot find -lcrypto 的错误

    Linux下 build code 时,要做 -lssl, -lcrypto 的链接,出现类似下面的错误: /usr/bin/ld: cannot find -lcrypto /usr/bin/ld: ...

  8. 市场上 MLCC 226 电容现象

    市场上 MLCC 226 电容现象 三星 X7R 1206 没有 16V 也有人在卖. Y5V 当 X7R 卖. X5R 当 X7R 卖. 薄电容当厚的电容卖.

  9. angular +H5 上传图片 与预览图片

    //index.html <form class="form-horizontal"> <div class="panel panel-default& ...

  10. 【转】hurry_liu 大神STM32移植contiki入门之一:系统介绍和开发环境搭建

    前言: 由于项目的原因,需要在LPC1788(STM32 cortex-M3)上面跑contiki. 之前没有涉及到contiki,不知其为何物.不过这个不是难事,做IT的,每每遇到新事物,都不会处理 ...