2D矢量特定元素传递给函数

时间:2014-03-28 08:39:51

标签: c++

我已经相应地创建了一个2D矢量和插入元素,例如

vector < vector<int> >  tube;
for(int i=0;i<2;i++)
{
   tube.push_back(vector<int> ());
   for(int j=0;j<5;j++)
   {
       tube[i].push_back(j);

   }
}

现在我想只将一行向量传递给一个函数而不是整个向量

void print(vector < vector<int> >  tube){

}


print (tube)//not like this
print (tube[0]) I want to pass first row of every element
print (tube[1]) or second row of every element. 

请帮我怎么做。

2 个答案:

答案 0 :(得分:3)

您应该声明如下内容:

void print(const vector<int> &row){
     // print here contents of row, which is received as const reference

}

然后你这样称呼它:

print(tube[i]);

这样, print()函数会接收对要打印的行的引用。该行未被复制,这有助于节省时间和内存。 const 关键字保证 print()函数不会改变向量的内容;如果需要,可以使用 const 向量作为参数调用 print()

答案 1 :(得分:0)

您可以将print的签名更改为void print( const vector< int > &row )。但是,从概念上讲,您似乎正在处理矩阵。