Как проверить, инициализирован ли итератор? - PullRequest
18 голосов
/ 05 августа 2011

Если я использую конструктор по умолчанию для итератора, как проверить, был ли он назначен позже?

Для указателей я мог бы сделать это:

int *p = NULL;
/// some code
if ( NULL == p ) {
  // do stuff
}

Как мне сделать выше для итераторов? Возможно ли это вообще?

#include <iostream>
#include <list>

int main ()
{
    std::list<int>::iterator it;

  if ( NULL == it ) // this fails
  {
      std::cout<<"do stuff" << std::endl;
  }
}

Ответы [ 11 ]

0 голосов
/ 05 августа 2011

Вы не можете. Все, что вы можете сделать, это сравнить с концом списка

it != mylist.end();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...