【问题标题】:c++ for loop increase dual pointsc++ for循环增加对偶点
【发布时间】:2017-09-08 23:09:24
【问题描述】:

这是我在 StackOverflow 上的第一个 C++ 相关问题

我有一个先前在 Openframeworks 中初始化的 3D 点的向量存储在 Vec3f 中

向量顶点;

我正在尝试获取这些顶点的中间点。我现在的代码是这样的

*for (int vertOne = 0; vertOne< 39; vertOne++) {

        vertex.push_back(vertices[vertOne].getMiddle(vertices[vertOne++]));  

}*

我想让顶点[vertOne] 在循环中向上移动,例如 - 0,1,2,3,4,5,6,7,8,9 等。

但我希望 .getMiddle(vertices[vertOne++]) 从 1、2、3、4、5、6、7、8、9 等开始在循环中移动。

所以我希望第一个数组从 0 开始,第二个数组从 1 开始,并在循环中成对向上移动

我是编程新手,所以任何帮助都会很棒

谢谢!

【问题讨论】:

  • vertex.push_back(vertices[vertOne].getMiddle(vertices[vertOne + 1]));
  • 这是因为vertOne++修改了vertOne,所以你的代码就成双了。
  • std::vector 有一个大小。比 39 之类的幻数更喜欢它。如果您使用 index + 1 访问下一项,请注意该大小。您要么需要在结束前停止 1,要么以不同的方式处理最后一项。
  • 为什么代码周围有*?它不能那样编译。

标签: c++ arrays loops for-loop


【解决方案1】:

后缀 ++ 运算符增加存储在变量中的值并将结果存储回变量中。您想增加该值但不将结果存储回变量中。您只需添加 1 (vertOne + 1) 即可实现此目的。

【讨论】:

  • 使用此方法时注意不要越界
  • 非常感谢您的快速回复 - 非常感谢!
猜你喜欢
  • 2015-04-15
  • 1970-01-01
  • 2016-10-12
  • 2014-12-12
  • 2018-07-15
  • 2018-09-15
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多