vector未在此范围内声明

时间:2015-11-05 19:01:19

标签: c++

我正在尝试解决这个问题,但我收到了这个

  

错误:未在此范围内声明'vector'。

以下是头文件中包含的struct定义和代码。

struct Vector
{
    unsigned int length;
    int values[MAX_ARRAY_LENGTH];
};


Vector getSquares(double a, double b, double c)
{
vector.length=0;
float minim=min(a, b, c);
float maxim=max(a, b, c);
int i;
for(i=sqrt(minim); i<=maxim; i++)
   {
    if((i*i<=maxim)&&(i*i>=minim))
    vector.values[vector.length]=i;
    vector.length++;
   }
   return vector;
}

3 个答案:

答案 0 :(得分:2)

我在猜测:

vector.length=0 

您正在尝试初始化最初为空的矢量对象;

为此你需要做:

Vector vector;
vector.length=0;

答案 1 :(得分:2)

实际上vector实际上并未在此范围内声明...编译器现在执行的是类型向量。

首先声明一个变量,然后使用它。

Vector vector;
// your code 

答案 2 :(得分:1)

头文件中包含的结构定义只是一个定义,即新的用户定义数据类型。但是,要使用此数据类型,您需要创建/声明对象/变量。 如前面的答案所示,您需要声明此结构/数据类型的变量(就像在使用它之前声明&#39; int i&#39;使用名为&#39; i&#39;的整数变量) - 在你的情况将是&#39; vector&#39;。 只需在函数开头声明一个变量

Vector vector;