“尋找奇數”的思考

題:

使用條件運算符從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》第五版,學到第四章了!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章