STL——反向迭代器

正向迭代器:

map<int, int>::iterator mit;

反向迭代器:

map<int, int>::reverse_iterator rit;  

 

 

 两者相差一个元素,从一个反向迭代器获得对应的正向迭代器需要使用 base() 方法。如下图所示:ri 是指向元素3的反向迭代器,而 i 是 ri.base() 所得到的正向迭代器。

先来分析如何将 reverse_iterator 转换为 iterator。如上图所示,我们想要删除元素3,而 ri.base() 所得到的正向迭代器 i 指向的其实 4 了,因而为了正确地删除元素 3,需要将ri往前(反向的)挪一个位置。也就是说,这一步的删除用法应为:

c.erase((++rit).base()); 

  注意(++rit)要加括号


引用自

> 参考:[(104条消息) 反向迭代器删除元素_lougd的博客-CSDN博客]

https://blog.csdn.net/u011391040/article/details/50433237

侵删致歉。

 

posted @ 2022-08-23 16:09  jessicaland  阅读(142)  评论(0)    收藏  举报