c++ - 将 vector 从堆栈复制到堆上

标签 c++ heap-memory stack-memory

我有一个接受常量 vector 引用的方法。我想将一个可变版本的 vector 放在堆上并返回它

这可以编译,但我不确定它是否真的按照我的想法行事。我不确定我是否对这里的内存感到幸运:

vector<Type> *vect = new vector<Type>;
*vect = vectReference;

最佳答案

没关系,您创建了动态分配的 vector 拷贝。但是同样可以使用复制构造函数而不是默认构造函数和赋值运算符以更短的方式完成:

vector<Type> *vect = new vector<Type>(vectReference);

还想建议使用智能指针而不是原始指针:std::unique_ptrstd::shared_ptr - 取决于您的代码语义。

关于c++ - 将 vector 从堆栈复制到堆上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12635087/

相关文章:

Java 内存/gc 问题(JRE 内存、堆空间不足和 gc 已满)

Java 拒绝启动 - 无法为对象堆保留足够的空间

java - jVisualVM 的内存检查器中的 "retained size"是什么意思?

c# - 编程语言中的栈和堆

swift - 这个对象究竟存储在哪里? ( swift )

c++ - 如何在 Boost Asio 上组合链包装器和优先包装器

c++ - SDL_TTF 绘图 int 到字符串内存泄漏?

C++模板类

c++ - 为什么在 blas gemm 函数族中不允许非正步幅?

assembly - 在相同权限级别从兼容模式切换到 64 位模式时,是否会发生隐式堆栈切换?