【C++ Primer】【练习题】【3.13】【3.17】求vector<int>相邻元素的和
2014-12-19 02:11
483 查看
要求:读一组整数到vector对象,求相邻两两元素的和并输出。
迭代器实现:
#include <iostream> #include <vector> using namespace std; int main() { vector<int> ivec; int ival; cout << "Please input numbers(EOF to end): "; while (cin >> ival) { ivec.push_back(ival); } if (ivec.size() == 0) { cout << "No element input!" << endl; return 0; } // 计算相邻两个元素的和并输出, 如果总元素个数为奇数, 则最后一个元素不求和直接输出 for (vector<int>::size_type i = 0; i < ivec.size(); i = i + 2) { // 非最后一个元素, 求和, 并输出 if (i < ivec.size() - 1) { cout << "Sum of vec[" << i << "] and vec[" << i + 1 << "] is: " << ivec[i] + ivec[i + 1] << endl; } // 最后一个元素, 不求和, 直接输出 else { cout << "The last single number vec[" << i << "] is: " << ivec[i] << endl; } } return 0; }
[chapter3]$ ./a.out Please input numbers(EOF to end): No element input! [chapter3]$ ./a.out Please input numbers(EOF to end): 1 The last single number vec[0] is: 1 [chapter3]$ ./a.out Please input numbers(EOF to end): 1 2 Sum of vec[0] and vec[1] is: 3 [chapter3]$ ./a.out Please input numbers(EOF to end): 1 2 3 Sum of vec[0] and vec[1] is: 3 The last single number vec[2] is: 3 [chapter3]$ ./a.out Please input numbers(EOF to end): 1 2 3 4 5 6 7 8 9 Sum of vec[0] and vec[1] is: 3 Sum of vec[2] and vec[3] is: 7 Sum of vec[4] and vec[5] is: 11 Sum of vec[6] and vec[7] is: 15 The last single number vec[8] is: 9
迭代器实现:
#include <iostream> #include <vector> using namespace std; int main() { vector<int> ivec; int ival = 0; cout << "[3.17]Please input numbers(EOF to end): "; while (cin >> ival) { ivec.push_back(ival); } if (ivec.size() == 0) { cout << "No element input!" << endl; return 0; } int num = 0; // 计算相邻两个元素的和并输出, 如果总元素个数为奇数, 则最后一个元素不求和直接输出 for (vector<int>::iterator i = ivec.begin(); i < ivec.end(); i = i + 2) { // 非最后一个元素, 求和, 并输出 if (i < ivec.end() - 1) { cout << "Sum of vec[" << num << "] and vec[" << num + 1 << "] is: " << *i + *(i + 1) << endl; num += 2; } // 最后一个元素, 不求和, 直接输出 else { cout << "The last single number vec[" << num << "] is: " << *i << endl; num++; } } return 0; }
[chapter3]$ ./a.out [3.17]Please input numbers(EOF to end): No element input! [chapter3]$ ./a.out [3.17]Please input numbers(EOF to end): 1 2 3 4 Sum of vec[0] and vec[1] is: 3 Sum of vec[2] and vec[3] is: 7 [chapter3]$ ./a.out [3.17]Please input numbers(EOF to end): 1 2 3 4 5 Sum of vec[0] and vec[1] is: 3 Sum of vec[2] and vec[3] is: 7 The last single number vec[4] is: 5
相关文章推荐
- 【C++ Primer】【练习题】【3.14】将vector<string>对象各元素中的小写字母转换成大写字母
- 用vector<int>对象元素,实现输入10数,将每个奇数值元素用该值的两倍替换
- 用迭代器求vector<double>中元素的和,for语句写循环
- 用迭代器求vector<double>中元素的和,while语句写循环
- vector<vector<int>>
- #碰到的小问题#c++中vector<int> 和vector<int>::iterator有什么不同
- QVector<QString> 显示器里面的动态数组元素QString和char *转变
- vector<vector<int>>
- vector<int>::size_type 解释
- vector<int>::iterator和vector<int*>::iterator还有vector<int>*的区别
- C++:vector<vector<int> > a, int b[M][L].两种方式,那种效率高。 注:都采用下标寻址方式。
- 1023 Have Fun with Numbers (20)(vector<int> di,di读取string里的数字)
- priority_queue<int,vector<int>,greater<int>>优先队列 按照由小到大顺序
- std::vector<std::string>::size_type和 int的区别
- 不能将参数 1 从“int”转换为“std::_Vector_const_iterator<_Myvec>”(VS2010 )
- 解决:error : 元素 <EnableEnhancedInstructionSet> 具有无效值“AdvancedVectorExtensions”。
- const vector <int> ::iterator和vector <int>::const_iterator有什么不同
- c++ vector<vector<int>>b(a[0].size(),vector<int>(a.size()))
- vector<vector<int>> 用法
- 二维向量:vector<vector<int>>