gpt4 book ai didi

c++ - 有没有一种简单的方法来分配结构数组

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:58 25 4
gpt4 key购买 nike

我有一个这样的结构数组:

struct VERTEX_FMT
{
float x, y, z, u, v;
const static DWORD FVF = (D3DFVF_XYZ | D3DFVF_TEX1);
};
VERTEX_FMT vertices[] = {
{-1.0f, -1.0f, 0.0f, 0.0f, 0.0f},
{-1.0f, 1.0f, 0.0f, 0.0f, 1.0f},
{ 1.0f, -1.0f, 0.0f, 1.0f, 0.0f},
{ 1.0f, 1.0f, 0.0f, 1.0f, 1.0f},
};

在 C++ 中是否有一种简单的方法可以为结构数组分配一个新值。

最佳答案

仅当您将数组包装在另一个 struct 中时。 C 中的数组非常糟糕,C++ 认为 std::vector 就足够了,并且任何修复 C 样式数组的尝试都不足以产生影响,或者会破坏兼容性到了你不能再谈论 C 风格数组的地步。

对于像您这样的 POD 阵列,memcpy 是迄今为止最简单的解决方案。对于更复杂的情况,甚至像您这样的 struct 数组的大多数情况,您应该考虑改用 std::vector。或混合使用:将 C 样式数组用于静态的初始化数组,例如您显示的数组,以便编译器将为您计算元素的数量,但将 std::vector 用于任何未在定义中完全初始化,或者是赋值的目标。使用 std::vector 的两个迭代器构造函数从 C 样式数组构造 std::vector 很容易,因此同时拥有这两种类型并没有真正的不便。

关于c++ - 有没有一种简单的方法来分配结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6275412/

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