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

标签 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 来到这里,所以我还没有任何类的经验。

有没有人可以帮助我,好吗?放弃结构并只专注于类会更好吗(这会有所帮助)吗?

最佳答案

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

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

关于c++ - 如何在 C++ 的头文件中使用 vector 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54627425/

相关文章:

c++ - 只锁定两个可能的互斥量之一

c++ - Unicode 到 UTF8 的对话

c++ - Valgrind 在通过指向结构的指针访问结构成员时提示无效读取

javascript - Three.js 获取具有给定世界方向坐标的场景向量的对象相对局部方向

vector - 创建分区错误 - HINT : If the column does not currently contain nulls, 推进 AHM

当我在 Visual Studio 中运行程序时,C++ 随机数生成器通常会在 2 次后停止生成数字

c++ - 如何将字符数组部分添加到 vector<char>

c - 将 C 结构转换为另一个元素较少的结构是否安全?

可以/不能返回结构的 C++ 方法

c# - 如何确定 .NET 类型是否为自定义结构?