2D矢量特定元素传递给函数
2D vector specific element pass to a function
我已经创建了一个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 )
来实现。然而,从概念上讲,你似乎在处理一个矩阵。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用不带参数的函数访问结构元素
- 使用函数"remove"删除重复元素
- 如何将元素添加到数组的线程安全函数?
- 如何通过 getter 函数删除矢量的元素?
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 复制包含C++所有元素的对象!(构造函数和赋值,最佳实践?
- 如何在基类指针向量的元素上应用重载的多态函数
- 这个返回元素位置的基于循环的函数有什么问题?
- 如何在 STL 函数中找到传递给谓词的元素的索引?
- 为什么用户定义的函数不按照给定的顺序对相同长度的元素进行排序?
- 如何为 std::vector 分配内存,然后稍后为某些元素调用构造函数?
- 交换函数不是在 C++ 中交换 2D 数组的元素
- C++:带有大括号初始化列表的函数调用表达式 - 标准是否规定在单个元素列表的微不足道的情况下忽略大括号?
- 如何在 c++ 中将整个数组初始化为类构造函数中的单个元素
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- 使用并行参数向量调用元素向量的成员函数
- 静态堆栈函数不会 1) 输入第一个元素 2)添加新元素时识别旧元素
- 如何使用某些因素的函数元素定义数组 m 由 n
- 运行时来自元组的源模板函数元素