要求使用迭代器

读入一组整数并把它们存入一个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. Spring Boot入门——json数据处理

    1.引入fastJson插件 <!-- 引入fastjson插件 --> <dependency> <groupId>com.alibaba</groupId ...

  2. JetBrains 系列软件

    JetBrains http://www.jetbrains.com/ 工具的路径也下载页面与下面第一个的idea类似,支持mac和windows平台的也都支持Linux平台. IntelliJ ID ...

  3. MKMapView缩放显示全部annotation(转)

    原文  http://blog.csdn.net/favormm/article/details/8028026#define MINIMUM_ZOOM_ARC 0.014 //approximate ...

  4. 高可用-软件heartbeat的入门介绍

    注:参考互联网整理. 一.简介Linux-HA的全称是High-Availability Linux,它是一个开源项目,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(r ...

  5. fastCGI模块

    这个模块允许nginx同FastCGI协同工作,并且控制哪些参数将被安全传递.例: location / { fastcgi_pass localhost:9000; fastcgi_index in ...

  6. AtCoder Beginner Contest 087 B - Coins

    Time limit : 2sec / Memory limit : 256MB Score : 200 points Problem Statement You have A 500-yen coi ...

  7. C#面向对象(一):明确几个简单的概念作为开胃菜

    绝对干货,总结了下C#面向对象的干货内容以及我几年来的使用心得,分享出来 先明确几个简单概念作为开胃菜: 1.命名空间 namespace BackStageManagement.Services 关 ...

  8. hdu5542 The Battle of Chibi[DP+BIT]

    求给定序列中长度为M的上升子序列个数.$N,M<=1000$. 很容易想到方法.$f[i,j]$表示以第$i$个数结尾,长度为$j$的满足要求子序列个数.于是转移也就写出来了$f[i][j]+= ...

  9. DWZ富客户端HTML框架

    一.了解 概述:是中国人自己开发的基于jQuery实现的Ajax RIA开源框架. 目的:简单实用.扩展方便(在原有架构基础上扩展方便).快速开发.RIA思路.轻量级 使用:用html扩展的方式来代替 ...

  10. C#获取路由器外网IP,MAC地址

    C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密 ...