首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c++三元算子

c++三元算子
EN

Stack Overflow用户
提问于 2016-07-13 05:41:36
回答 2查看 570关注 0票数 2

我在C++工作。我有两个关于三元运算符的陈述。

代码语言:javascript
运行
复制
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和深度都在三元操作符之前被修改。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-13 11:49:14

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

票数 2
EN

Stack Overflow用户

发布于 2016-07-16 04:39:07

第一个例子比第二个例子更地道。这就是我要找的。

注:然而,,在阅读后,我同意这是操作人员的不当使用。一个简单的if语句可以代替三元操作符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38343457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档