Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
使用以下代码:
执行
换一种说法:
这等于
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
使用以下代码:
class MyClass
{
public:
void GetStrings(list<std::string>& strs)
{
strs = m_strings;
}
list<std::string> m_strings;
}
执行
m_strings
时是否会复制所有strs = m_strings;
的元素?换一种说法:
这等于
list<std::string>& strs = m_strings;
还是list<std::string> strs = m_strings;
(对于元素复制) 最佳答案
是。
现在,如果您只想复制对列表的引用(例如使用C#或Java等语言),然后传递shared_ptr,那么您将拥有一个包含2个引用的列表。
即使要传递的变量是指针(例如4字节变量),C / C ++中的所有变量分配也都按值完成。其他语言是相同的,只是它们用其语言结构掩盖了这一点。
10-08 11:07