【发布时间】:2009-12-08 23:39:06
【问题描述】:
我有一个像这样的向量:
vector<MyType*> _types;
我想遍历向量并在向量中的每个 MyTypes 上调用一个函数,但是我从编译器得到无效的返回错误。看来pos 迭代器不是指向MyType 的指针,它是别的东西。我不明白什么?
编辑:一些代码..
for (pos = _types.begin(); pos < _types.end(); pos++)
{
InternalType* inst = *pos->GetInternalType();
}
编译器错误是:
- 重载的“运算符 ->”返回类型无效的“InternalType**”
- “GetInternalType”:不是“std::_Vector_iterator<_ty>”的成员
编辑 pt2
我的向量应该包含指针还是对象?优缺点都有什么?如果我使用new 创建实例,我猜我只能使用指向 MyType 的指针向量,对吗?
【问题讨论】:
-
当您甚至没有向我们展示您尝试过的内容时,很难告诉您您不理解什么;)
-
(*pos)->GetInternalType()
-
“我的向量应该包含指针还是对象?”。如果它包含对象,那么您添加到向量中的对象将被复制到向量中。矢量中对象的更改不会影响原件。所以这取决于你是否想要。