Нет, в общем случае вы не можете инициализировать итератор с NULL
. Требования итератора не требуют, чтобы итератор был назначаемым или инициализируемым из целочисленного типа или std::nullptr_t
, возможных типов, которые может иметь NULL
.
Нет смысла пытаться это сделать. Это просто не нужно. Но так как вы не объяснили, почему вы пытаетесь это сделать, я не могу вносить дальнейшие предложения.
По поводу ваших дополнительных вопросов в комментариях: Вы можете value-initialize каждый прямой итератор :
vector<int>::iterator it{}; // value-initialized
Начиная с C ++ 14 вы гарантируете, что сравниваемые итераторы одного типа, построенные таким образом, будут сравниваться равными.
Все контейнерные итераторы являются прямыми итераторами.