有没有空迭代器

来源:百度知道 编辑:UC知道 时间:2024/06/15 02:01:50
?/
2楼 瞎说
你自己试了吗

当然有,对应空容器

#include <string>
#include <iostream>
using namespace std;
main()
{
string A;
string::iterator st=A.begin();
if(st==NULL)cout <<"exist";
}

迭代器是指针的抽象,指针有空指针,自然迭代器也能为空
上面的代码能编译运行显示exist

迭代器对应的是容器被分配的内存单元的地址,当容器为空时,begin()和end()都为默认构造值NULL,对他们解引用就相当于*(int*)0,当然无效.
但对应于空指针NULL,此时他们就相当于NULL的抽象vector<int>::iterator(0)

没有