c++ - C++中数组的QVector

标签 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"

最佳答案

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

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

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

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

关于c++ - C++中数组的QVector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34423290/

相关文章:

c++ - 阅读堆栈/堆和符号表概念的好资源是什么?

c++ - Karp Rabin 中的质数和 block 长度

关于使用扩展运算符包含 1...N 的数组的 Javascript 异常行为

c - 将数组中的数字转换为星星

c++ - catch (...) 是否在 throw 上工作;没有对象?

c++ - 无需强制转换即可分配具有不同数据类型地址的指针

c++ - 免费(): double free detected in tcache 2

qt - 在 QListView 的 QWidgetDelegate 的 paint() 方法中渲染 QWidget

c++ - QComboBox : Can we make the entire combobox clickable, 不只是下拉按钮(箭头)本身?

windows - 没有图标的QMessageBox