gpt4 book ai didi

c++ - 通过引用传递(=返回)函数导出处的 vector

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

这个 C++ 代码片段合法吗?

vector<myType>& aClass::aFunction()
{
vector<myType> aVec;

//do stuff

return aVec;
}

然后在另一个函数中使用它:

vector<myType> getVec = aFunction();

所以基本上,我问的是:如果我声明 getVec 并获得对 aVec vector 数据的引用,数据是否会在 aFunction() 死亡后继续存在 ?

最佳答案

不行,很调皮。您不能返回对局部变量的引用。

按值传回即可。编译器应该为你做返回值优化,所以你不应该得到浪费的拷贝。

vector<myType> aClass::aFunction()
{
vector<myType> aVec;
// ...
return aVec;
}

关于c++ - 通过引用传递(=返回)函数导出处的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620865/

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