gpt4 book ai didi

c++ - 在 C++ 中扩展指针数组

转载 作者:行者123 更新时间:2023-11-30 02:04:59 25 4
gpt4 key购买 nike

我是一个迷失在 C++ 和指针中的 Java 程序员:D

我有一个指向桶对象的指针数组

Bucket<E>* index = new Bucket<E>[2];

我这样初始化它:

index[0] points to Bucket1
index[1] points to Bucket2

然后我想将数组的大小加倍并像这样链接额外的条目:

index[0] points to Bucket1
index[1] points to Bucket2
index[2] points to Bucket1
index[3] points to Bucket2

到目前为止,我有这段代码,它生成 Bucket-Objects 的拷贝,但我不想要那个!

for (size_t i = 0; i < newSize; ++i)
{
if (i < oldIndexSize)
newIndex[i] = index[i];
else
newIndex[i] = index[i - oldIndexSize];

}

最佳答案

I have an array of pointers to Bucket-Objects

不,您有一个指向 Bucket 对象数组的指针。指向 Bucket 对象的指针数组如下所示:

Bucket<E> * index[2];

一个动态分配的指向桶对象的指针数组应该这样声明:

Bucket<E> ** index = new Bucket<E>*[N];

但是您可能应该使用的是指向存储桶对象的共享指针 vector ,如下所示:

std::vector<std::shared_ptr<Bucket<E>>> index;

关于c++ - 在 C++ 中扩展指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9980216/

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