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