список указателей в с ++ - PullRequest
       6

список указателей в с ++

2 голосов
/ 13 апреля 2010

Что я хочу сделать, это

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 ]

8 голосов
/ 13 апреля 2010
(*i)->getName()

- это то, что вы ищете.

6 голосов
/ 13 апреля 2010

*i разыменовывает итератор. Поскольку тип данных списка - pointer to cPacket, вам необходимо применить оператор -> для доступа к его членам. Скобки необходимы для правильного приоритета:

(*i)->whatever()
0 голосов
/ 13 апреля 2010

заменить

list<cPacket *>::iterator i

с

list<cPacket>*::iterator i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...