一、如果我们想要测试一个算术对象或者指针对象的真值。可直接用if语句。
1 int temp= 1; 2 if(temp) { } //尽量不要去使用if(temp == 1) 3 4 bool temp_t =true; 5 if(temp_t) //尽量不要去使用if(temp_t == true)
二、除非必须,否则尽量不用递增或者递减的后置版本
1 int a,b = 0 2 b = ++a; //其中a=1,b=1,因为是先加的 3 int a,b = 0 4 b = a++; //其中a=1,b=0,因为是先赋值以后再加的
三、解引用和后置++可以混用
1 auto vc = vat.begin(); 2 while(vc != vat.end() && *vc >= 0) 3 { 4 cout << *vc++ <<endl; //打印出此容器负数之前的所有对象 5 } 6 7 // *vc++ 的意思是vc++ 的优先级高于*vc,所以vc++相当于位置加一,然后进行解引用,得到vc的值。
在代码中我们可以用简洁的代码,尽量使用简洁的代码,比如前面的解引用和递增的混用。
四、条件运算符(?:)
1 vector<int> vat; 2 int temp; 3 while (cin >> temp) 4 { 5 if (temp) 6 { 7 vat.push_back(temp); //给容器中增加对象 8 } 9 else 10 { 11 break; 12 } 13 } 14 for (auto vc = vat.begin(); vc != vat.end(); ++vc) 15 { 16 *vc < 0 ? *vc = 5 : *vc; //如果vc的值小于0,就赋值为5 17 cout << *vc << endl; 18 }
?前面是条件,如果为真,:为如果为假的结果。