map.end指向的元素是容器中最后一个元素之后的元素,是一个 理论上的元素 ,实际并不存在。
因此指向它的迭代器不能够被解引用(Dereferenced)。
引入map.end的目的是为了操作方便,比如通常和map.begin配合,确定容器的范围:
for (std::map<string,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it){
//其它代码
}
如果试图用解引用的方式输出map.end的值,其结果是不确定的,换句话说,是没有意义的。
看一下图就更清楚了: