我正在尝试创建一个多维数组(C++ 数组类)的 QVector,但我遇到了麻烦
我有一个类“节点”,我想将多维数组的 QVector 作为节点类构造的参数传递,但这不起作用,我遇到了编译错误!
Class node {
node(QVector<array<array<int, SIZE>, SIZE>> v);
}
任何人都知道我应该如何进行?
我正在尝试创建一个多维数组(C++ 数组类)的 QVector,但我遇到了麻烦
我有一个类“节点”,我想将多维数组的 QVector 作为节点类构造的参数传递,但这不起作用,我遇到了编译错误!
Class node {
node(QVector<array<array<int, SIZE>, SIZE>> v);
}
任何人都知道我应该如何进行?
节点(QVector,大小>> v);
如果没有 C++11 及更高版本,那将无法编译。您需要两种方法来解决它:
node(QVector<array<array<int, SIZE>, SIZE> > v);
// ^space
node(QVector<array<array<int, SIZE>, SIZE> > v);
正确,没有变化;它只是工作。将其放入您的 qmake 项目文件中:
CONFIG += c++11
但是,由于您似乎使用“C++ 数组”,因此您将需要后一种解决方案。换句话说,只需为您的构建添加 c++11 编译支持。
您还有其他问题:
我不确定你从哪里得到资本的想法Class
。应该写class
。
此外,您天生就需要在;
课程之后使用分隔符 ( )。
你最好不要array
在头文件中使用,但是std::array
.
这是我的工作示例:
#include <QVector>
#include <array>
const int SIZE = 5;
class node {
node(QVector<std::array<std::array<int, SIZE>, SIZE>> v) {}
};
int main()
{
return 0;
}
TEMPLATE = app
TARGET = main
CONFIG += c++11
SOURCES += main.cpp
qmake && make && ./main
尝试在>>
. 例如:
class node {
node(QVector<array<array<int, SIZE>, SIZE> > v);//space here!
};//don't forget
你需要这个空间,因为编译器认为你想使用>>
运算符。