"vector"未在此范围内声明



我遇到了此错误," vector"在此范围中没有声明"在 *h和 *cpp a文件中分开时,在此范围中都没有声明" vector"。这是main.cpp:

#include <iostream>
#include <math.h>
#include <vector>
#include "functia.h"
using namespace std;
int main()
 {
  vector<double> s(3);
  double b= 4;
  fun(s, b);
  cout<<s[0]<<endl;
  double c= 9;
  fun(s, c);
  cout<<s[0];
  }

functia.h:

 void fun(vector<double> & rS, double a)
 {
   rS[0] = a + 3;
   rS[1] = 4;
   rS[2] = 5;
 }

functia.cpp:

#include <iostream>
#include <math.h>
#include<vector>
using namespace std;

void fun(vector<double> &, double );

您在CPP文件中有声明,并且标题中的定义确实应该是相反的。

已交换文件后,从functia.h删除 using namespace std;,因为在标头文件中删除名称空间不是一个好习惯。您需要将声明更改为

void fun(std::vector<double> &, double );

请参阅"使用名称空间"在C 标题

我还强烈建议您阅读C/C 包括文件订单/最佳实践

更改'vector;到" std :: vector"