gpt4 book ai didi

c++ - 将数组放入另一个数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:23:29 27 4
gpt4 key购买 nike

如何将数组列表存储到另一组数组中?我试过这种方法,但它不起作用。

float data1[5] = {150.0, 203.0, 165.0, 4.0, 36.0};
float data2[5] = {249.0, 255.0, 253.0, 104.0, 2.0};

float allData[2] = {data1, data2};

cout << allData[1][2] << endl; //this should print 253.0 but it has error

这不允许我编译。我还尝试将其更改为 float *allData[2] = {data1, data2}; 它允许我编译但我没有得到我想要的结果。

我做错了什么?谢谢。

最佳答案

你应该使用 vector (这个例子在 C++11 中):

std::vector<float> data1 = {150.0, 203.0, 165.0, 4.0, 36.0};
std::vector<float> data2 = {249.0, 255.0, 253.0, 104.0, 2.0};

std::vector<std::vector<float>> allData = {data1, data2};
std::cout << allData[0][0] << std::endl;

注意:您可能希望将指向 vector 的指针存储在 allData 中以防止复制数据,但您应该始终注意此类结构,因为这可能很快导致悬空指针。顺便说一下,对于普通数组的解决方案也是如此。

编辑,正如 R. Martinho Fernandes 在评论中提到的那样:

您可以将 allData 的构造更改为:

std::vector<std::vector<float>> allData = {std::move(data1), std::move(data2)};

但值得注意的是,在此操作之后 data1data2 将变为空,因为它们的内容已移至 allData。如果您不再需要它们,这是首选版本(无指针,无复制)。

关于c++ - 将数组放入另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7242002/

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