c ++中的指针列表

pav*_*los 2 c++ pointers list

我想做的是

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

哪个getName是类cPacket的功能,但是它不起作用,我也尝试了 i.operator->()->getName(),而且一无所获.

有谁能够帮我?

Nik*_*chi 8

(*i)->getName()
Run Code Online (Sandbox Code Playgroud)

是你在找什么.

  • @pavlos:您可以将迭代器视为指向容器元素的指针.但在这种情况下,容器中的元素是指针.`(*i)`将为您提供容器中的指针,然后您可以使用` - > getName()`来调用它指向的对象上的函数. (2认同)

Ale*_*ler 6

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

(*i)->whatever()
Run Code Online (Sandbox Code Playgroud)