gpt4 book ai didi

c++ - (*i).member 是否比 i->member 效率低

转载 作者:可可西里 更新时间:2023-11-01 15:02:22 30 4
gpt4 key购买 nike

拥有

struct Person {
string name;
};

Person* p = ...

假设没有运算符被重载。


哪个更有效(如果有的话)?

(*p).name 对比 p->name

在我脑后的某个地方,我听到一些铃声,* 解引用运算符可能会创建一个对象的临时拷贝;这是真的吗?


这个问题的背景是这样的案例:

Person& Person::someFunction(){
...
return *this;
}

我开始怀疑,如果将结果更改为 Person* 并在最后一行简单地 return this 会不会有什么不同(在性能上)?

最佳答案

没有区别。即使标准说这两者是等价的,如果有任何编译器不能为两个版本生成相同的二进制文件,那它就是一个糟糕的编译器。

关于c++ - (*i).member 是否比 i->member 效率低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16355488/

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