将在堆栈上声明的元素添加到静态数组
Adding an element that is declared on the stack to a static array
假设我有一个被声明为静态的std::vector。我可以将对象添加到向量中,这些对象是在调用函数的堆栈上本地声明的,而不会产生影响吗?
根据我的理解,向量将其元素存储在堆上。意思是如果我告诉向量像这样移动元素
myvector.push_back(std::move(element));
它将存储在堆上,并且其可见性将保持不变,对吗?
编辑:我想避免复制对象,因为它管理其他资源。
我说的对吗?或者这能更容易完成吗?
通常可以通过从具有自动或静态存储的对象复制来复制具有动态存储的初始化对象,反之亦然。是否通过移动复制对象并不重要。
理论上,有些类只有在以某种方式分配时才可以正常工作,但这些类应该变得不可复制以防止出现问题。
相关文章:
- 添加静态constexpr成员是否会更改结构/类的内存映射
- 如何在友元函数中使用静态成员而不添加前缀 [类名]::
- 如何将 libjpeg-turbo Android NDK 添加为静态库
- 将在堆栈上声明的元素添加到静态数组
- const_cast静态数组以添加恒常性
- 静态堆栈函数不会 1) 输入第一个元素 2)添加新元素时识别旧元素
- 如何将对象添加到类中的静态向量
- 如何从C++而不是虚幻编辑器中添加静态网格体组件的值?
- ctypes,添加静态库时未定义的符号
- 如何使用 PHP-CPP 在 PHP 类中添加静态数组
- iOS:添加静态库后C++应用大小太大
- 添加静态库时出现链接器错误
- 为什么添加静态数据成员会导致链接器失败
- 可以添加静态变量破坏 Linux 上的二进制兼容性
- VS2010-添加静态库时发生链接器错误
- 如何使用Xcode在c++项目中添加静态库
- Qt-creator 和 MSVC 无法添加(静态)库
- 在c# Unity3d中添加静态c++库
- 如何添加静态链接运行时程序集
- 在QtCreator中添加静态.a库