我有一个载体,像这样:你如何使用C++迭代器?
vector<MyType*> _types;
我想遍历向量,并呼吁每个向量MyTypes的功能,但我从编译器收到无效返回错误。看来pos
迭代器不是指向MyType的指针,它是别的。我不了解什么?
编辑:一些代码..
for (pos = _types.begin(); pos < _types.end(); pos++)
{
InternalType* inst = *pos->GetInternalType();
}
编译器错误是:
- 返回类型无效 'InternalType **' 重载 '运营商 - >'
- 'GetInternalType':不是'std :: _ Vector_iterator < _Ty,_Alloc'的成员''
编辑pt2
我的向量应该包含指针或对象吗?优缺点都有什么?如果我使用new
创建一个实例,我猜我只能使用指向MyType的指针向量是否正确?
很难告诉你什么,当你甚至没有告诉我们什么,你什么都没有向我们展示过;) – Cogwheel 2009-12-08 23:39:49
(* pos) - > GetInternalType() – Dan 2009-12-08 23:44:57
“我的向量应该包含指针还是对象?如果它包含对象,则添加到该向量的对象将被复制到该向量中。对矢量中对象的更改不会影响原件。所以这取决于这是你想要的。 – 2009-12-08 23:50:36