c++ - C++中的if语句

标签 c++ data-structures

嗨,亲爱的!

我知道 if 语句在 C++ 中是一个昂贵的语句。我记得有一次我的老师说 if 语句在计算机时间意义上是一个昂贵的语句。

现在我们可以通过在 C++ 中使用 if 语句来完成所有事情,所以从编程的角度来看这是非常强大的语句,但从计算机时间的角度来看它是昂贵的。

我是初学者,我在学习 C++ 类(class)后正在学习数据结构类(class)。 我的问题是
大量使用 if 语句对我来说更好吗?

最佳答案

If 语句被编译成 conditional branch .这意味着处理器必须根据条件跳转(或不跳转)到另一行代码。在一个简单的处理器中,这会导致 pipeline stall ,通俗地说,这意味着处理器必须放弃早先完成的工作,这会浪费流水线的时间。但是,现代处理器使用 branch prediction以避免停顿,因此 if 语句的成本会降低。

总而言之,是的,它们可能很昂贵。不,您通常不必担心。但是 Mykola 提出了一个单独的(尽管同样有效的)观点。 Polymorphic code通常(为了可维护性)优于 if 或 case 语句

关于c++ - C++中的if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183017/

相关文章:

c++ - A*搜索两种可能性

java - java链接集实现

c# - 对象的哈希值如何存储在字典中?

c - 查看 AVL 树未给出正确的输出

c++ - stringstream 可以解析这样的东西吗?

.net - UI 和后台线程之间的交叉线程

c++ - boost::interprocess_exception - 创建 shared_memory_object 时出现 library_error 异常

c++ - 为什么用clang扩展宏时 '##'没有消失?

C++ - 无法从队列中删除元素

python - 如何将图的节点/顶点表示为字母或名称值而不是数字