我有一个接受常量 vector 引用的方法。我想将一个可变版本的 vector 放在堆上并返回它
这可以编译,但我不确定它是否真的按照我的想法行事。我不确定我是否对这里的内存感到幸运:
vector<Type> *vect = new vector<Type>;
*vect = vectReference;
最佳答案
没关系,您创建了动态分配的 vector
拷贝。但是同样可以使用复制构造函数而不是默认构造函数和赋值运算符以更短的方式完成:
vector<Type> *vect = new vector<Type>(vectReference);
还想建议使用智能指针而不是原始指针:std::unique_ptr
或 std::shared_ptr
- 取决于您的代码语义。
关于c++ - 将 vector 从堆栈复制到堆上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12635087/