我已经相应地创建了一个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.
请帮我怎么做。
答案 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 )
。但是,从概念上讲,您似乎正在处理矩阵。