将多个计算放入使用基于迭代次数的变量的 for 循环中

Putting multiple calculations into a for-loop that uses variables based on iteration number

本文关键字:迭代 变量 循环 for 计算 于迭代      更新时间:2023-10-16

将以下内容组织成一个迭代 X 次但需要根据迭代次数更新变量(速度、当前姿势、目标点)的 for 循环的最佳方法是什么?

velocity1 = computeVelocity(currentPose1, targetPoint1); 
velocity2 = computeVelocity(currentPose2, targetPoint2); 
... 
velocityX = computeVelocity(currentPoseX, targetPointX);

理想情况下,for 循环如下所示:

for (int i=0; i<X; i++)
{
velocity_i = computeVelocity(currentPose_i, targetPoint_i);
}

由于对于每个velocity,都会有一个相关的(并且可能是不同的)currentPosetargetPoint,一种方法是将所有这些变量作为std::vectors,或者std::array如果您在编译时知道必须存储多少项。那么你的循环可能看起来像这样:

for (int i=0; i<X; i++)
{
velocity[i] = computeVelocity(currentPose[i], targetPoint[i]);
}

我不认为希望i成为变量名称的一部分是可行的(尽管可能有一些方法可以使用预处理器宏和#连接运算符来做到这一点,但我还没有考虑过),也不通常是C++代码。

对于C++程序员来说,vector/array方法是更自然的方法。