C 将对象添加到向量
C++ add objects to vector
我不确定我的方法是否正确,所以我要您验证。我正在尝试将单个对象添加到2D向量。这是代码:
std::vector<std::vector<*Tree>> treeVector(100);
for (auto &j : treeVector)
j.assign(treeVector.size(), new Tree(0, 0));
该类称为Tree
。该代码有效,但似乎对向量中的对象增加了一倍?我想念什么吗?
循环
for (auto &j : treeVector)
j.assign(treeVector.size(), new Tree(0, 0));
等于
for (auto &j : treeVector) {
Tree *tmp = new Tree(0, 0);
j.assign(treeVector.size(), tmp);
}
在每次迭代中只分配并构造一棵树,TreeVector的每个元素(std::vector<Tree *>
)将包含100个指向同一对象的指针。
您想要的可能是:
for (auto &j : treeVector) {
for (int i=0; i<treeVector.szie(); ++i)
j.push_back(new Tree(0,0));
}
您可能需要使用std::unique_ptr
,这将有助于管理内存。
相关文章:
- 有没有办法向这个向量添加元素?
- 这种方式是否可以接受向向量添加unique_ptr?
- 向向量添加元素
- 无法向向量添加回调
- 如何将向量添加到结构中以创建一个库存系统,在该系统中,我可以仅使用一个结构向系统添加多种不同的葡萄酒
- 在一个类中向向量添加元素不适用于其他类
- 以下向 c++ 向量添加元素的方法有什么区别
- 我可以在不推送向量的情况下向向量添加值吗?
- 向向量C++添加对
- 使用单词键将多个行号的向量添加到我的地图中
- 在C++中向指针数组中的向量添加元素
- 要创建一个一开始没有特定维度的类Vector,请在类中创建一个方法,允许向向量添加维度
- 一次向 C++ 向量添加多个元素
- STL - 向存储在 STL 映射中的向量添加值
- 向向量添加向量
- 如何向结构类型的向量添加点
- 为什么我的课'当我向向量添加实例时,会调用s析构函数
- 向c++向量添加新字段
- 在c++中向向量添加对象vs向向量添加指针
- 当Type为unique_ptr时,为向量添加运算符[]