gpt4 book ai didi

c++ - 通过迭代器更改对象成员?

转载 作者:行者123 更新时间:2023-11-30 04:36:37 25 4
gpt4 key购买 nike

自从我使用 C++ 以来已经有一段时间了。我可以做这样的事情吗?:

for (vector<Node>::iterator n = active.begin(); n!=active.end(); ++n) {
n->ax /= n->m;
}

其中 Node 是一个带有一些 float 的对象?

如果用 Java 编写,我想要完成的是类似于:

for (Node n : this.active) {
n.ax /= n.m;
}

其中 active 是 Node 对象的数组列表。

我想我忘记了关于通过引用传递的一些怪癖或者一些绝望地向空中举手

最佳答案

是的。这种语法基本上适用于几乎所有的 STL 容器。

// this will walk it the container from the beginning to the end.
for(container::iterator it = object.begin(); it != object.end(); it++)
{
}

object.begin() - 基本上为迭代器提供容器的第一个元素。

object.end() - 遍历所有元素后,迭代器将设置为此值。请注意,为了检查结尾,我们使用了 !=

operator++ - 将迭代器移动到下一个元素。

根据容器的类型,您可能有其他方式来导航迭代器(比如向后、随机到容器中的某个位置等)。 here 是对迭代器的一个很好的介绍。 .

关于c++ - 通过迭代器更改对象成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4466430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com