Как я могу использовать векторный тип данных в заголовочном файле в C ++? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть эта структура ниже для матриц.Он работал правильно, когда я объявил об этом в своем 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 голосов
/ 11 февраля 2019

Стандартная библиотека C ++ включает новые объявления в пространстве имен std.Вам нужно написать std::vector вместо просто vector.

Вероятно, причина того, что это сработало в вашем файле .cpp, заключается в том, что у вас есть строка using namespace std где-то около вершины, которая выводит все из пространства именstd и переносит его в локальное пространство имен.Это плохая практика , и я рекомендую вам прекратить это делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...