C++ 模板和for循环的问题

C++ 模板和for循环的问题,c++,templates,for-loop,C++,Templates,For Loop,我有这段代码,它给了我一个指示两个问题的错误 int healthyConst = 0; int sickConst = 1; int recoveredConst = 2; GraphMatrix<int, double> graph (100); for (int i = 0; i < sampleSize; i++) { if(std::rand() % 2 > 0.05) graph.setVertexInfo(i, sickConst); //Erro

我有这段代码,它给了我一个指示两个问题的错误

int healthyConst = 0;
int sickConst = 1;
int recoveredConst = 2;

GraphMatrix<int, double> graph (100);
for (int i = 0; i < sampleSize; i++)
{
    if(std::rand() % 2 > 0.05) graph.setVertexInfo(i, sickConst); //Error
    else graph.setVertexInfo(i, healthyConst); 
}
int-healthyConst=0;
int sickConst=1;
int-recoveredConst=2;
图矩阵图(100);
for(int i=0;i0.05)graph.setVertexInfo(i,sickConst);//错误
else图.setVertexInfo(i,healthyConst);
}
错误是:

错误:没有用于调用GraphMatrix::setVertexInfo(int&,int*)的匹配函数

该函数在源代码中声明如下:

void GraphMatrix::setVertexInfo(int v、VertexObject和info)

首先,我不应该成为推荐人。这对我来说似乎毫无意义,但我无法解决这个问题。如果我试图智取编译器并键入
for(int*I=0…
,错误现在会抱怨
setVertexInfo(int&*,int*)
,我甚至不明白这意味着什么

其次,sickConst不是指针。它只是一个int。现在我意识到,编写的方法接受VertexObject&,而不是VertexObject,但是
*sickConst
也会导致编译器抱怨
无效的类型参数“一元*”
。我还尝试了
&sickConst
,编译器不会意外地将其解释为指针

还要注意的是,for循环的第二行会抛出相同的错误,可能是出于相同的原因


问题是:为什么会出现这些错误,以及如何修复它们?

您声明源代码中的函数声明如下:

void GraphMatrix::setVertexInfo(int v、VertexObject和info)


但是,在for循环中,您将传递一种类型的
int
。更改函数声明和定义以接受
int
类型,或更改作为
顶点对象传递给函数的类型

您声明源代码中的函数声明如下:

void GraphMatrix::setVertexInfo(int v、VertexObject和info)

但是,在for循环中,您将传递一种类型的
int
。更改函数声明和定义以接受
int
类型,或更改作为
顶点对象传递给函数的类型