C ++中数组的QVector

时间:2015-12-22 19:41:20

标签: c++ arrays qt qvector

我试图在QVector中保持多项式系数。我的多项式是2阶,所以它有三个数。

当我定义QVector<double[3]> zeros_Real(n + 1)时,我收到错误(如下)。首先,我认为我可以使用QVector<QVector<double>>,但这将是速度和内存问题,所以我决定不这样做。

为什么我不能拥有QVectordouble[3]元素?

错误:

mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make: *** [debug] Error 2
21:27:01: The process "C:\Qt\Tools\mingw492_32\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project untitled11 (kit: Desktop Qt 5.5.1 MinGW 32bit)
When executing step "Make"

1 个答案:

答案 0 :(得分:4)

QVector(如std::vector)要求其元素可以复制(它必须在重新分配期间复制元素)。数组可以被复制,这意味着你不能拥有QVector<double[3]>

工作的替代方法是使用std::array(C ++ 11或更高版本):

QVector<std::array<double, 3>>

可以复制哪些。 Qt没有自己的QArray,所以你必须像这样混合标准库和Qt容器。