繁体   English   中英

c ++迭代器向量结构

[英]c++ iterator vector struct

我创建了一个带有两个Point3f类型字段的Point3f (从另一个标头继承)。

struct C_Cell {

  Point3f min, max;

};

然后我创建了一个C_Cell的向量

std::vector< C_Cell> grid;

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

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

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

在调试过程中,它的类型不是C_Cell而是Point3f ,它是字段的类型,而且是空的。

如何正确迭代,以这种方式获得C_Cell类型的单个元素?

谢谢(抱歉我的英文!:))

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

(*it).min

要么

(*it).max

或者,没有取消参考,

it->min

取消引用的迭代器(*it)应该是C_Cell ,因为它是迭代器的工作方式,它们的operator*返回对容器底层类型的对象的引用。 迭代器的行为非常像常规指针(虽然它们不是常规指针,但代理类),您可以增加/解除引用等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM