如何在我的头文件中修复('vector':未声明的标识符)?

时间:2019-04-15 18:42:21

标签: c++ arrays vector header-files

我正在尝试创建一个函数,该函数计算数组中所有数字的平均值。但是,当我运行代码时,标头中的向量未声明。我应该改变什么?

我尝试将#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 个答案:

答案 0 :(得分:4)

  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

答案 1 :(得分:0)

您需要在#include <vector>中而不是math.h中添加math.cpp