我在C++工作。我有两个关于三元运算符的陈述。
std::stack<Node*> s;
int depth = 0;
/*modify depth integer and stack size, based on height of BST*/
depth = s.size() > depth ? s.size() : depth;
std::stack<Node*> s;
int depth = 0;
/*modify depth integer and stack size, based on height of BST*/
s.size() > depth ? depth = s.size() : depth = depth;我的问题是:是否有一种用三元运算符给变量赋值的标准方法?这些形式中的一种是更有效率、更简洁,还是更好?
第二个例子似乎比第一个例子更多余。
编辑:添加注释,s和深度都在三元操作符之前被修改。
发布于 2016-07-13 11:49:14
三元表达式主要用于它产生的值。可以滥用它并且只使用它的副作用,但是这种构造最好留给普通的if语句。因此,第一个例子是三元表达式的惯用用法(尽管正如注释所指出的,在这种情况下可能不合适),而第二个例子则不是。
发布于 2016-07-16 04:39:07
第一个例子比第二个例子更地道。这就是我要找的。
注:然而,,在阅读后,我同意这是操作人员的不当使用。一个简单的if语句可以代替三元操作符。
https://stackoverflow.com/questions/38343457
复制相似问题