如何在 C++ 的头文件中使用向量数据类型?
How can I use the vector datatype in a header-file in C++?
我在下面有这个结构用于矩阵。当我在 main.cpp 中声明它时它工作正常,但由于程序变得更加复杂,我决定将其换掉。所以我的头文件看起来像这样:
#ifndef MATRIX_STRUCT_H
#define MATRIX_STRUCT_H
#include <vector>
// Matrix datatype
struct matrix_ {
// Matrix dimension m x n
unsigned int dimX; // n
unsigned int dimY; // m
bool square;
// Matrix coefficients
vector <vector <double>> coef;
};
typedef struct matrix_ matrix;
#endif // MATRIX_STRUCT_H
我现在遇到的问题是,第 4 行 #include <vector>
是否存在都没有关系。我总是收到第 13 行的错误
error: 'vector' does not name a type
如果你想知道为什么我使用结构而不是 class,我只是最近刚从 C 过来,所以我还没有任何使用 classes 的经验.
请问有人能帮帮我吗?放弃结构并只专注于 classes 会更好吗?
C++ 标准库在 std
命名空间中包含新的声明。你需要写 std::vector
而不是 vector
.
它在您的 .cpp 文件中起作用的可能原因是您在顶部附近的某处有行 using namespace std
,它将名称空间 std
中的所有内容带入本地名称空间。 is bad practice 我建议你停止这样做。
我在下面有这个结构用于矩阵。当我在 main.cpp 中声明它时它工作正常,但由于程序变得更加复杂,我决定将其换掉。所以我的头文件看起来像这样:
#ifndef MATRIX_STRUCT_H
#define MATRIX_STRUCT_H
#include <vector>
// Matrix datatype
struct matrix_ {
// Matrix dimension m x n
unsigned int dimX; // n
unsigned int dimY; // m
bool square;
// Matrix coefficients
vector <vector <double>> coef;
};
typedef struct matrix_ matrix;
#endif // MATRIX_STRUCT_H
我现在遇到的问题是,第 4 行 #include <vector>
是否存在都没有关系。我总是收到第 13 行的错误
error: 'vector' does not name a type
如果你想知道为什么我使用结构而不是 class,我只是最近刚从 C 过来,所以我还没有任何使用 classes 的经验.
请问有人能帮帮我吗?放弃结构并只专注于 classes 会更好吗?
C++ 标准库在 std
命名空间中包含新的声明。你需要写 std::vector
而不是 vector
.
它在您的 .cpp 文件中起作用的可能原因是您在顶部附近的某处有行 using namespace std
,它将名称空间 std
中的所有内容带入本地名称空间。 is bad practice 我建议你停止这样做。