gpt4 book ai didi

c++ - 使用引用传递来填充容器还是使用返回值来填充它更好?

转载 作者:太空宇宙 更新时间:2023-11-04 14:30:02 24 4
gpt4 key购买 nike

对于令人困惑的标题,我们深表歉意,如果这是重复的,我深表歉意(我尝试在线搜索答案),希望这个示例能够解决问题:

基本上,这样做会更好吗:

void fill(vector<int> & v);

int main() {
vector<int> v;
fill(v);
return 0;
}

或者这个:

vector<int> fill();

int main() {
vector<int> v = fill();
return 0;
}

我一直在阅读有关 C++11 中编译器如何移动函数的返回结果而不是复制它们的信息。其中一个比另一个更好吗?还是仅仅是偏好?

最佳答案

Single responsibility principle的角度最好使用返回值来修改变量。

例如,如果您有一个为 vector 创建初始配置的 fill() 函数,该函数的职责是创建初始配置(从数据库、文件或硬编码配置中读取它们) .不要将配置分配给您的变量(这可能也是一个复杂的过程)。

如果您只更改 1 个变量,它会增加代码的可读性。您无需记住 fill() 函数是否修改了您的变量。

关于c++ - 使用引用传递来填充容器还是使用返回值来填充它更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457419/

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