“寻找奇数”的思考

题:

使用条件运算符从vector<int>中寻找哪些元素的值是奇数,然后将这些奇数的值翻倍。

#include  <iostream>
using std::cout;	using std::cin; using std::endl;

#include <string>
using std::string;	
#include <cstring>
#include <vector>
using std::vector;

#include <iterator>
using std::begin; using std::end;

#include <cstddef>
using std::size_t; 


int main()
{
	int ia;
	vector<int> ivec;
	while(cin >> ia)
		ivec.push_back(ia);
	for(decltype(ivec.size()) index = 0; index != ivec.size(); ++index)
	{
		if(ivec[index]%2)
		{
			ivec[index] = ivec[index] * 2;
		}
		cout << ivec[index] << ' ';
	}
	cout << endl;
	return 0;
	
}

我们试着用auto语句

#include  <iostream>
using std::cout;	using std::cin; using std::endl;

#include <string>
using std::string;	
#include <cstring>
#include <vector>
using std::vector;

#include <iterator>
using std::begin; using std::end;

#include <cstddef>
using std::size_t; 


int main()
{
	int ia;
	vector<int> ivec;
	while(cin >> ia)
		ivec.push_back(ia);
	for(auto &c : ivec)
	{
		if(c%2)
		{
			c= c * 2;
		}
		cout << c << ' ';		
	}
	cout << endl;
	return 0;
	
}

我们试着用条件运算符去试试

#include  <iostream>
using std::cout;	using std::cin; using std::endl;

#include <string>
using std::string;	
#include <cstring>
#include <vector>
using std::vector;

#include <iterator>
using std::begin; using std::end;

#include <cstddef>
using std::size_t; 


int main()
{
	int ia;
	vector<int> ivec;
	while(cin >> ia)
		ivec.push_back(ia);
	for(auto &c : ivec)
	{
		c = (c % 2) ? c*2 : c;
		cout << c << ' ';
	}
	cout <<endl;
	
	return 0;
	
}

有没有很神奇,哈哈!

参考:《c++ primer》第五版,学到第四章了!


 

posted @ 2016-01-13 15:40  Vzf  阅读(301)  评论(0编辑  收藏  举报