Mau*_*Mau 2 c++ struct iterator vector
我创建了一个包含两个类型字段的结构Point3f(从另一个标头继承).
struct C_Cell {
Point3f min, max;
};
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个矢量 C_Cell
std::vector< C_Cell> grid;
我已经通过填充grid.push_back(c)其中c一个C_Cell.
现在,当我尝试迭代矢量时,通过
for (std::vector<C_Cell>::iterator it = grid.begin() ; it != grid.end(); ++it)
在调试期间,它的类型不是,C_Cell但是Point3f,这是字段的类型,而且是空的.
如何正确迭代,以这种方式获得单个元素类型C_Cell?
谢谢(抱歉我的英文!:))
vso*_*tco 10
你必须取消引用迭代器并使用它
(*it).min
Run Code Online (Sandbox Code Playgroud)
要么
(*it).max
Run Code Online (Sandbox Code Playgroud)
或者,没有取消参考,
it->min
Run Code Online (Sandbox Code Playgroud)
取消引用的迭代器的类型(*it)应该是C_Cell,因为它是迭代器的工作方式,它们operator*返回对容器底层类型的对象的引用.迭代器的行为非常像常规指针(虽然它们不是常规指针,但代理类),您可以增加/解除引用等.
| 归档时间: |
|
| 查看次数: |
14648 次 |
| 最近记录: |