您的位置:首页 > 编程语言 > C语言/C++

【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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐