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