题:
使用条件运算符从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》第五版,学到第四章了!