啃煤球的小西瓜 2017-08-05 03:22 采纳率: 55.6%
浏览 6837
已采纳

我想输出迭代器所指向的map.end()这个元素怎么输出?

图片说明
怎么输出it所指向的元素?

  • 写回答

4条回答 默认 最新

  • 战在春秋 2017-08-05 06:21
    关注

    map.end指向的元素是容器中最后一个元素之后的元素,是一个 理论上的元素 ,实际并不存在。
    因此指向它的迭代器不能够被解引用(Dereferenced)。

    引入map.end的目的是为了操作方便,比如通常和map.begin配合,确定容器的范围:

     for (std::map<string,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it){
          //其它代码
    }
    

    如果试图用解引用的方式输出map.end的值,其结果是不确定的,换句话说,是没有意义的。
    看一下图就更清楚了:
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?