gpt4 book ai didi

C++ vector 操作优化

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

我正在尝试优化下面的代码以避免必须复制和粘贴并正确使用 SlaveForce 和 SlavePos,它们是 float[6] 类型,baseForce 和 basePos 是 vector 类型:

typedef struct _NodeCoord
{
float coords[6];
} NodeCoord;

int main()
{
...
memcpy(tempNodeCoord.coords, SlaveForce, 6*sizeof(float));
baseForce.push_back(tempNodeCoord);
memcpy(tempNodeCoord.coords, SlavePos, 6*sizeof(float));
basePos.push_back(tempNodeCoord);
...
}

我已经尝试了一些测试代码。只有这个似乎有效:

std::vector<NodeCoord> tallon;
NodeCoord m;
memset(m.coords, 0, sizeof(m.coords));
tallon.push_back(m);

虽然这符合我想要完成的目标,但它不起作用:

std::vector<float[6]> ed;
float e[6];
tallon.push_back(e);

我也试过写一个“typedef float[6] mytype;”主要功能之前的行,但它也不能很好地工作。有什么我可以做的来消除 memcpy 函数调用(或者直接 push_back float[6] 变量)?提前致谢。

最佳答案

尝试 vector 的 vector :

std::vector<std::vector<float> > ed;

ed.push_back(std::vector<float>(6, 0.0f));

在这种情况下,我正在推送一个临时浮点 vector ,其中包含 6 个值为 0.0f 的元素;

Info on vector's constructors .

关于C++ vector 操作优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1139345/

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