gpt4 book ai didi

c++ - 我需要帮助将数组添加到 C++ 中的 vector

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:02 25 4
gpt4 key购买 nike

我正在关注 OpenGL super 圣经第 5 版,他们将 vector (数学中的 vector )定义为

typedef float   M3DVector3f[3];

我正在尝试将它的一个实例添加到 std::vector(C++ 中的“可调整大小的数组”),但是我一直收到一条错误消息:

array initialization needs curly braces

Full Error

我定义 std::vector 的方式以及我添加到它的方式是:

std::vector<M3DVector3f> vertices;

float vertex[3];
sscanf_s(line.c_str(), "%*s %f %f %f", &vertex[0], &vertex[1], &vertex[2]);

M3DVector3f v = {vertex[0], vertex[1], vertex[3]};

vertices.push_back(v);

我发现问题出在 vertices.push_back(v) 调用上,因为我在注释掉它时没有收到错误。有人可以向我解释并帮助我弄清楚为什么它不允许我将此 vector 添加到我的 vector 中吗?

最佳答案

数组不能(直接)复制或分配,标准容器要求类型可复制和分配。

但是,您可以(并且可能应该)这样做:

struct M3DVector3f // a basic vector class
{
float x;
float y;
float z;
};

可复制且同样可用。

关于c++ - 我需要帮助将数组添加到 C++ 中的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4252150/

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