c ++中的指针列表

时间:2010-04-12 22:18:12

标签: c++ list pointers

我想做的是

for (list<cPacket *>::iterator i = cache.begin(); i != cache.end(); i++){
        if( strcmp(i->getName(),id) == 0 ){
            return true;
        }
}

其中getName是类cPacket的函数,但它不起作用,我也尝试了 i.operator->()->getName(),而且一无所获。

有人能帮助我吗?

3 个答案:

答案 0 :(得分:8)

(*i)->getName()

正是您要找的。

答案 1 :(得分:6)

*i取消引用迭代器。由于列表的数据类型为pointer to cPacket,您需要应用->运算符来访问其成员。正确的优先需要括号:

(*i)->whatever()

答案 2 :(得分:-3)

替换

list<cPacket *>::iterator i

list<cPacket>*::iterator i