gpt4 book ai didi

c++ - std::vector 插入对象的拷贝或引用?

转载 作者:可可西里 更新时间:2023-11-01 15:45:53 26 4
gpt4 key购买 nike

假设我有一个动态分配的对象。如果我将其放入 STL vector 中,是否会将引用插入 vector 或该对象的拷贝中?

这是一个普遍的问题。例如:

class vec {
vector<obj> vec;
void addToVec(obj a) {
// insert a into vec
}
...
...
...
}

obj* a = new obj;
vec* v = new vec;
vec.addToVec(a);

如果我删除 v,是否也会反对骰子?

最佳答案

will a reference be inserted into the vector or a copy of this object?

复制(这意味着您的 class 应该是可复制的,否则会出现编译错误)。

澄清:不能在 std::vector<> 中分配引用.另外,这里的object有更广义的意思,可以是普通变量也可以是指针,但是std::vector<>只接受拷贝。

更新:C++11 后,大多数标准容器提供 std::move()使用“基于右值的 API 方法”的对象;不能复制的地方。

关于c++ - std::vector 插入对象的拷贝或引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com