gpt4 book ai didi

c++ - 将 3 个整数的结构 vector 解释为数组

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

OpenGL 具有诸如 BufferData(int array[]) 之类的函数,其中 array 的格式必须为 x-y-z x-y-z ...

它只是一个整数序列,其中每个连续的三元组都被解释为一个顶点。

将其表示为 std::vector 是否安全,其中顶点声明为:

struct vertex
{
int x, y, z;
};

在我看来,这将使发生的事情在语义上更加清晰。但是,是否可以保证这会起作用?

如果不是,是否有任何其他方法可以提供更语义化的数据表示?

最佳答案

它可能有效但不可靠 - 结构成员之间可能存在未命名的填充,因此您无法保证它们正确对齐

仅使用 std::vector 有什么问题 - 标准保证此内存正确对齐和顺序。

例如你可以使用:

std::vector<int> cord(3,0);
BufferData(&cord[0]);

[编辑]Mooing Duck pointer out 它需要超过 1 组 3, - 所以在那种情况下只需扩展 vector

3 个整数的 3 个元组

std::vector<int> cord(9,0);
BufferData(&cord[0]);

关于c++ - 将 3 个整数的结构 vector 解释为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774687/

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