【发布时间】:2010-07-26 20:34:34
【问题描述】:
我有这三个相关的班级成员:
vector<Frame*>* poolFrames;
vector<Frame*>*::iterator frameIterator;
vector<vector<Frame*>::iterator>* poolFrameIterators;
当我编译时,gcc 会告诉我
错误:'::' 的使用无效 错误:在“frameIterator”之前需要“;”
参考中间线,我在这里定义了 frameIterators。当我松开指向向量的指针并使其成为向量::迭代器时,它就消失了。但是,我希望它们成为指针。有没有一种特殊的方法来定义我想要的数据类型,还是我需要使用 vector::iterator 然后取消引用?
【问题讨论】:
-
它无效,因为它没有任何意义(根据 C++ ISO 标准)。我什至无法弄清楚你想要什么......请记住,存储矢量迭代器并不是最好的主意,因为矢量迭代器很容易变得无效。
-
我知道我在做什么,知道它可能不稳定,并且有预防措施来避免它出现问题。我想遍历 Frame* 的向量,但是向量需要是一个指针。
-
有你的困惑:你似乎没有区分指针和指针。只需松开第二行中的第二个星号就可以了。