我正在使用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和depth。

最佳答案

三元表达式主要用于它产生的值。可能会滥用它,仅使用其副作用,但是最好将这种构造留给普通的if语句使用。因此,第一个示例是三元表达式的惯用用法(尽管,正如注释所指出的,在这种情况下可能不合适),而第二个示例则不是。

关于c++ - C++三元运算符使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38343457/

10-12 23:52