我在下面有这个结构用于矩阵。当我在 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
如果你想知道为什么我使用结构而不是类,我只是最近才从 C 来到这里,所以我还没有任何类的经验。
有没有人可以帮助我,好吗?放弃结构并只专注于类会更好吗(这会有所帮助)吗?
最佳答案
C++ 标准库包括在 std
命名空间中放置新的声明。您需要编写 std::vector
而不仅仅是 vector
。
它在您的 .cpp 文件中起作用的可能原因是您在顶部附近的某处有 using namespace std
行,它带来了来自 namespace std
的所有内容并带来它进入本地命名空间。这is bad practice我建议你停止这样做。
关于c++ - 如何在 C++ 的头文件中使用 vector 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54627425/