【发布时间】:2020-01-21 19:37:34
【问题描述】:
假设我有一个声明为静态的 std::vector。我可以将在调用函数的堆栈上本地声明的对象添加到向量中而不会产生影响吗?
据我了解,向量将其元素存储在堆上。意思是如果我告诉向量像这样移动元素
myvector.push_back(std::move(element));
它将被存储在堆上并且它的可见性将被保留,对吧?
编辑:我想避免对象被复制,因为它管理其他资源。
我说的对吗?或者这可以更容易完成吗?
【问题讨论】:
-
通常对象被复制到向量中,所以真的不需要做任何特别的事情。
-
@Someprogrammerdude 谢谢你的回答!我应该提到,我想避免复制对象,因为它管理资源并且复制对象会弄乱程序。
-
然后移动(像你一样)应该也能正常工作。
标签: c++ vector memory-management static move