如何在C ++的头文件中使用vector数据类型?

时间:2019-02-11 09:29:47

标签: c++ vector struct header-files

我在矩阵下面有这个结构。当我在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刚来的,所以我还没有任何关于类的经验。

有人可以帮助我吗?放弃这些结构而只专注于课程会更好(会有所帮助)吗?

1 个答案:

答案 0 :(得分:5)

C ++标准库在std命名空间中包含放置新的声明。您需要编写std::vector而不是vector

很可能它在您的.cpp文件中起作用的原因是,行using namespace std位于顶部附近,它将所有来自命名空间std的内容带入本地命名空间。这个is bad practice,我建议您停止这样做。