gpt4 book ai didi

c++ - 在速度方面是否值得在交换之前比较值(value)?

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:41 27 4
gpt4 key购买 nike

标题听起来很复杂,但几行代码后就会非常容易理解。

假设您有一个指针数组,它可能为 NULL,也可能指向实际结构。我们的任务是将所有指针设置为 NULL(删除无关紧要)。

我们可以通过以下方式实现:

 // first way
array[i] = NULL;

// second way
if (array[i] != NULL)
array[i] = NULL;

我想知道,如果我们采用第二种方式,是否可以在已经为 NULL 的值上节省一些速度?假设数组已经有 50% NULL。我的大学讲师曾经说过“比较不花钱,改变值(value)才花钱”。是真的吗?如果我们采用第二种方式,我们会对速度产生任何积极影响吗?或者额外的比较只会浪费时间?

最佳答案

第一种方式总是更快。您必须读取指针以检查它是否为空,然后写入它,这比只写入它需要更长的时间。虽然进行比较本身可能不会花费太多时间,但采用条件分支的后果肯定不好。 [好吧,所以编译器可能会消除它,但不能保证]。

但是对于性能,“在互联网上询问并不能替代测量!”。

关于c++ - 在速度方面是否值得在交换之前比较值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14661493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com