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

2D vector specific element pass to a function

本文关键字:函数 元素 2D      更新时间:2023-10-16

我已经创建了一个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. 

请告诉我怎么做。

你应该这样声明:

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

然后你这样称呼它:

print(tube[i]);
这样你的print()函数接收到你想要打印的行的引用。不复制行,这有助于节省时间和内存。const关键字保证print()函数不会改变vector的内容;如果需要的话,可以使用const vector作为参数调用print()

可以通过修改print的签名为void print( const vector< int > &row )来实现。然而,从概念上讲,你似乎在处理一个矩阵。