gpt4 book ai didi

C++ 迭代器 vector 结构

转载 作者:太空狗 更新时间:2023-10-29 23:39:51 25 4
gpt4 key购买 nike

我创建了一个结构,其中包含两个类型为 Point3f 的字段(继承自另一个 header )。

struct C_Cell {

Point3f min, max;

};

然后我创建了一个 vector C_Cell

std::vector< C_Cell> grid;

我已经填写了 grid.push_back(c)其中 cC_Cell .

现在,当我尝试迭代 vector 时,通过

for (std::vector<C_Cell>::iterator it = grid.begin() ; it != grid.end(); ++it)

在调试时,它的类型不是C_Cell但是Point3f ,这是字段的类型,而且是空的。

我怎样才能正确地迭代,以这样的方式获得类型为 C_Cell 的单个元素? ?

谢谢(对不起我的英语!:))

最佳答案

你必须取消引用迭代器并像这样使用它

(*it).min

(*it).max

或者,不取消引用,

it->min

取消引用的迭代器 (*i​​t) 的类型应该是 C_Cell,因为这就是迭代器的工作方式,它们的 operator* 返回一个引用到容器的基础类型的对象。迭代器的行为非常像常规指针(尽管它们不是常规指针,而是代理类),您可以递增/取消引用等。

关于C++ 迭代器 vector 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27583945/

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