37 C++的三元操作符
三元运算符,其实就是一个?
和一个:
, 只是if语句的语法糖而已
1. 一般使用
等同于同样
std::string rank = s_Level > 10 ? "Master" : "Beginner";
/* ------------------------ */
std::string otherRank;
if (s_Level > 10)
otherRank = "Master";
else
otherRank = "Beginner";
这里的代码和上面不同,而且技术上来说会更慢,因为你创建了一个临时字符串然后又立即销毁它。 而这里的三元运算符没有构造中间字符串的原因实际上与return value optimization返回值优化有关(一种高级编译器特性,是一种优化方式),后续会提到。
现在只需要知道这样写代码更整洁了,个人看法这么写速度也会更快