C++中数组的QVector
QVector of arrays in C++
我试图在 QVector
中保存多项式系数。我的多项式是 2 次,所以它有三个数字。
当我定义 QVector<double[3]> zeros_Real(n + 1)
时,出现错误(如下)。首先,我认为我可以使用 QVector<QVector<double>>
但它会是速度和内存问题,所以我决定不这样做。
为什么我不能有 QVector
个 double[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"
QVector
(如std::vector
)要求其元素是可复制的(它必须在重新分配期间复制元素)。数组可以 不能 被复制,这意味着你不能有 QVector<double[3]>
.
可行的替代方法是使用 std::array
(C++11 或更高版本):
QVector<std::array<double, 3>>
哪个可以复制。 Qt 没有自己的 QArray
,因此您必须像这样混合使用标准库和 Qt 容器。
我试图在 QVector
中保存多项式系数。我的多项式是 2 次,所以它有三个数字。
当我定义 QVector<double[3]> zeros_Real(n + 1)
时,出现错误(如下)。首先,我认为我可以使用 QVector<QVector<double>>
但它会是速度和内存问题,所以我决定不这样做。
为什么我不能有 QVector
个 double[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"
QVector
(如std::vector
)要求其元素是可复制的(它必须在重新分配期间复制元素)。数组可以 不能 被复制,这意味着你不能有 QVector<double[3]>
.
可行的替代方法是使用 std::array
(C++11 或更高版本):
QVector<std::array<double, 3>>
哪个可以复制。 Qt 没有自己的 QArray
,因此您必须像这样混合使用标准库和 Qt 容器。