将2d向量传递给函数c ++

时间:2011-06-03 01:49:32

标签: c++

我在头文件中的类(图形)中有一个函数(assign)。此功能的目的是打印2d矢量:

class Graph
{
public:
    void printvec(vector< vector<double> >&PRRMap);
};

我从cpp文件中调用此函数,例如:

Graph G;
G.printvec(vector< vector<double> > &PRRmap);

我收到以下错误:

  

错误:‘&’令牌

之前的预期primary-expression

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

void printvec(vector< vector<double> >&PRRMap);

这是一份声明。它包含形式参数,每个参数都指定类型和可选名称。

G.printvec(a_map);

这是一个函数调用。它包括实际参数,每个参数都是一个表达式,即值。在函数调用期间未命名该类型。但是您需要指定要打印的矢量的名称。

根据函数声明中指定的形式参数类型检查实际参数表达式的类型。如果它们不匹配,编译器将寻找合适的转换,如果找不到,则会出现编译错误。

由于您的函数需要非const引用,因此此处不允许进行大多数转换。您应该使用要打印的数据指定合适的矢量矢量对象的名称。

答案 1 :(得分:3)

当您拨打该功能时,您不需要&amp;操作

仅变量(有效参考)