gpt4 book ai didi

c++ - 将静态数组插入 std::vector?

转载 作者:行者123 更新时间:2023-11-30 02:11:35 24 4
gpt4 key购买 nike

我正在尝试执行以下操作:

我有:

std::vector<std::vector<GLdouble[2]>> ThreadPts(4);

然后我尝试做:

 GLdouble tmp[2];
while(step--)
{


fx += dfx;
fy += dfy;
dfx += ddfx;
dfy += ddfy;
ddfx += dddfx;
ddfy += dddfy;
tmp[0] = fx;
tmp[1] = fy;
ThreadPts[currentvector].push_back(tmp);
}

但是编译器说:

错误 15 error C2440: 'initializing' : cannot convert from 'const GLdouble [2]' to 'double [2]' C:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector 1211

那我怎么能这样做呢?我正在使用 VS 2008,没有 std::array,也没有提升。

谢谢

最佳答案

C 风格的数组是不可赋值的,所以它不能用作 vector 的值类型.

如果您至少使用 C++11,则可以 #include <array>并使用 std::array . (以前在 Visual C++ 2008 SP1 中作为 std::tr1::array 提供)。

typedef std::vector<GLdouble[2]> pointList;
// Becomes
typedef std::vector<std::array<GLdouble, 2>> pointList;

https://en.cppreference.com/w/cpp/container/array

如果您没有,您可以简单地将 Boost Array header 复制到您的项目中并单独使用它;它不依赖于 Boost 的许多其他部分,并且可以轻松删除它所依赖的部分。

关于c++ - 将静态数组插入 std::vector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191535/

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