【发布时间】:2014-05-23 00:46:13
【问题描述】:
如果我有以下代码,是否复制了向量?
std::vector<int> x = y.getTheVector();
还是取决于getTheVector() 的返回类型是否通过引用?
或者我只需要使用:
std::vector<int>& x = y.getTheVector();
或者,我需要两者都做吗?
【问题讨论】:
-
如果
x是引用,则不复制,如果不是,则复制。 -
我不同意 awesomeyi。 getTheVector 函数的返回无关紧要;重要的是你分配给它的东西。
-
好的,我同意@awesomeyi 编辑的答案,这取决于x 的类型,而不是
getTheVector函数的返回类型。 -
如果
getTheVector返回的不是临时的引用,那么第二行就有很大的问题。 -
这是非常有趣的家伙 - 所以函数返回类型不能确定传递机制?它是调用方对象的类型(在这种情况下 x 是否是引用)!?
标签: c++ pointers vector reference