C++ 如何将向量中的值传递给具有多个参数的函数

C++ 如何将向量中的值传递给具有多个参数的函数,c++,loops,for-loop,vector,while-loop,C++,Loops,For Loop,Vector,While Loop,我是编程新手,需要循环方面的帮助 我有一个名为data的向量,它填充了多少个数字 vector<int> data; 数据中的数字是经过特殊排序的,因此模式[src,dest,weight]得到支持。我想从数据[2]开始,向前循环,直到到达data.size(),数据中不再有数字 例如,我想创建一个循环来执行以下操作: addEdge(graph, data[2], data[3] , data[4]); addEdge(graph, data[5], data[6], data[

我是编程新手,需要循环方面的帮助

我有一个名为data的向量,它填充了多少个数字

vector<int> data;
数据中的数字是经过特殊排序的,因此模式[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]);
     }
for(int i=2;i
或者我应该做一个像这样的文件


并读取每行和的3个整数,并作为函数中的参数传递?在C++中我该怎么做?或者我应该使用另一种类型的循环?谢谢。

你的方向是正确的,只是你错过了一个
for
循环,只要把
for
循环中的
i++
替换为
i+=3
,你就可以走了。

我要硬编码跨步。当然,如果
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]);
}
for(int i=0;i
for
循环的
卡在哪里?(根据您的示例,看起来
i++=3
可能是比
i++
更好的增量)谢谢您的帮助。。我不认为自己是程序员,你看到OP以i=2开始计数吗?@ AMADEUS是的,但后来他一路走到数据。siz()/<代码>而不是<代码>数据。siz()- 3 < /代码>。在我看来,我的设计更好,更不容易出错。
for (int i = 0; i < data.size()/3; ++i)
{
  addEdge(graph, data[3*i], data[3*i+1], data[3*i+2]);
}