gpt4 book ai didi

c++ - std::vector 带有指向具有自定义类型的静态数组的指针

转载 作者:行者123 更新时间:2023-11-30 03:01:13 25 4
gpt4 key购买 nike

我有这样的东西:

typedef int customType[10];

我想要这样的功能

std::vector<customType*>& myFunc();

但也存在一些问题。

1) 我需要为 vector 中每个指向 customType 的指针分配内存(是吗?)和做

std::vector<customType*> A;
//some code to get length
for (i = 0; i < length; i++)
{
A[i] = new customType;
}

错误是因为错误:

IntelliSense: a value of type "int *" cannot be assigned to an entity of type "customType*"

2)一般来说,这样的数据存储方式好吗?也许我应该制作一个一维数组,所有内容都存储在一行中,然后使用类似

的内容

A[i*innerLength+j]

访问元素?

最佳答案

您的代码将无法运行,因为 A[i]类型为 int (*)[10]new表达式的类型是 int* , 要么改变 Astd::vector<int*>或将您的数组包装在类或结构中:

struct customType {
int data[10];
};

然后你可以使用 std::vector<customType> (最好)或 std::vector<customType*> .

std::vector<int[10]>不会工作,因为 C 和 C++ 中的数组不可分配,这是 std::vector 的要求.

关于c++ - std::vector 带有指向具有自定义类型的静态数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11276768/

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