如何将向量中的值传递给带有多个参数的函数
Posted
技术标签:
【中文标题】如何将向量中的值传递给带有多个参数的函数【英文标题】:How do I pass values in vector to a function that takes multiple parameters 【发布时间】:2017-04-24 01:33:35 【问题描述】:我是编程新手,需要循环方面的帮助。
我有一个名为 data 的向量,其中填充了许多数字
vector<int> data;
我还有以下功能
addEdge(graph, src, dest, weight)
data 中的数字是专门排序的,以便维护模式 [src, dest, weight]。我想从 data[2] 开始并向前循环,直到达到 data.size() 并且数据中没有更多数字了。
例如,我想创建一个循环来执行此操作:
addEdge(graph, data[2], data[3] , data[4]);
addEdge(graph, data[5], data[6], data[7]);
addEdge(graph, data[8], data[9], data[10]);
等..直到达到 data.size() 。这可能吗?我尝试了 for 循环和 while 循环,但一直卡住,例如:
for (int i=2; i< data.size(); i++ )
addEdge(graph, data[i], data[i+1], data[i+2]);
或者我应该只制作一个像 this
并读取每一行和 3 个整数并在函数中作为参数传递?我将如何在 C++ 中做到这一点?还是我应该使用另一种类型的循环?谢谢。
【问题讨论】:
您的for
循环在哪里“卡住”了? (根据您的示例,看起来i+=3
可能是比i++
更好的增量。)
谢谢你的帮助.. 我不认为自己是程序员哈哈
【参考方案1】:
您的方向正确,只是您错过了for
循环,只需将for
循环中的i++
替换为i+=3
,就可以了。
【讨论】:
【参考方案2】:我会硬编码跨步。当然,如果data.size()
不能被 3 整除,这就会爆炸。
for (int i = 0; i < data.size()/3; ++i)
addEdge(graph, data[3*i], data[3*i+1], data[3*i+2]);
【讨论】:
你看到 OP 从 i=2 开始计数了吗? @Amadeus 是的,但后来他一路上升到data.size()
而不是 data.size()-3
。在我看来,我的设计更好,更不容易出错。以上是关于如何将向量中的值传递给带有多个参数的函数的主要内容,如果未能解决你的问题,请参考以下文章
38 py改变函数参数的值关键字参数和参数默认值函数中可变参数将序列中的元素值作为函数对应的参数值传