我是编程新手,需要循环帮助。
我有一个名为data的向量,其中包含许多数字
vector<int> data;
我还有以下功能
addEdge(graph, src, dest, weight)
数据中的数字是专门排序的,以便维护模式[src,dest,weight]。我想从数据[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 ++做这个?或者我应该使用其他类型的循环?谢谢。
答案 0 :(得分:0)
你是正确的方向,只是因为你错过了for
循环,只需用i++
替换for
循环中的i+=3
,你就是好的去吧。
答案 1 :(得分:0)
我很难对大踏步进行编码。当然,如果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]);
}