Как исправить ('vector': необъявленный идентификатор) в моем заголовочном файле? - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь создать функцию, которая вычисляет среднее значение всех чисел в моем массиве.Но когда я запускаю код, вектор в моем заголовке говорит, что он не объявлен.Что я должен изменить?

Я попытался поместить #include в мой заголовочный файл и использовать пространство имен std;но это все еще не решает мою проблему.Я также попытался передать свою функцию в качестве ссылки.

Source.cpp

#include <iostream>
#include <string>
#include "math.h"
#include <vector>

using namespace std;


int main()
{


    vector<int> notes;
    notes.push_back(8);
    notes.push_back(4);
    notes.push_back(3);
    notes.push_back(2);

     cout << average(notes) << '\n';

}

math.cpp

#include "math.h"
#include <vector>

using namespace std;



int average(vector<int>  tableau)
{  
    int moyenne(0);
    for (int i(0); i < tableau.size(); i++)
    {
        moyenne += tableau[i];

    }

    return moyenne / tableau.size();
}

math.h

#ifndef MATH_H_INCLUDED
#define MATH_H_INCLUDED

int average(vector<int>  tableau);

#endif  MATH_H_INCLUDED

Ответы [ 2 ]

4 голосов
/ 15 апреля 2019
  1. Добавить #include <vector>.
  2. Использовать std::vector вместо просто vector.
  3. При этом измените тип аргумента на const&.

#ifndef MATH_H_INCLUDED
#define MATH_H_INCLUDED

#include <vector>

int average(std::vector<int> const& tableau);

#endif  MATH_H_INCLUDED
0 голосов
/ 15 апреля 2019

Вам нужно добавить #include <vector> в math.h вместо math.cpp

...