c++primer-p101.ex3.24
来源:互联网 发布:淘宝排除同款 编辑:程序博客网 时间:2024/05/16 04:30
要求使用迭代器
读入一组整数并把它们存入一个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;}主要在输出第二种形式的和,自己写的太过繁琐,用迭代器可以直接确定倒数的对象,无需用长度去算。
0 0
- c++primer-p101.ex3.24
- c++primer p101 3.4.2 练习3.24 未完成 很多问题
- C++ Primer 第3章ex3.5
- C++ primer 第3章 ex3.10
- ex3
- [Haskell] ex3
- ex3.py
- 【层次遍历 P101】
- p101 练习3.25
- c++primer 2/24--- 数组
- C++primer
- 《C++primer》
- C++primer
- C++primer
- C++Primer
- 【足迹C++primer】24、顺序容器概述
- 正则表达式ex3
- 最大值和最小值Ex3
- android ImageLoader图片加载
- Thinking in Java(5)-finalize()和初始化
- Python基础-输出到文件
- 用Netty开发中间件:高并发性能优化
- Spring MVC学习总结(一)---(一:基本概念和意义的理解)
- c++primer-p101.ex3.24
- iOS 比较load和initialize方法
- Android存储--SQLite
- 数据类型不匹配时最好使用强制类型转换
- 剑指Offer——Trie树(字典树)
- 初识java的xml
- 座谈会——体会(一)
- 使用STM32F1xx_HAL库实现CAN通信的问题
- 逝去的雄心壮志