假设我这样声明了一个指针数组
Animal** animalsarr = new Animal*[10];
如果在此阵列中,有x个婴儿出生,并且我想在其运行时将其大小调整为新的Animal * [10 + x],我该怎么办?
答案 0 :(得分:6)
创建C ++是为了简化开发。它有一个非常漂亮的标准库,其中包含名为std::vector
的类型,可以完全满足您的需求:
std::vector<std::unique_ptr<Animal>> v;
v.push_back(nullptr);
v.push_back(std::make_unique<Fish>());
// ...
std::cout << "Elements in use: " << v.size() << std::endl;
注意:std::vector::resize
允许您增大/缩小矢量,但是,我觉得您目前实际上不需要。
答案 1 :(得分:1)
至少有两种方法:
std::vector<Animal*> animalsarr;
animalsarr.resize(10);
然后在需要时,只需增加向量大小:
animalsarr.resize(10+x);