`
splayx
  • 浏览: 82819 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

stl迭代器边界值的左++和左--

阅读更多

今天对stl中vector和set迭代器边界值的++和--做了些试验。

也查看了一下源码。发现

vector.begin()的值左--就会报错,原因是源码中有以判断如果是第一个元素时不可以进行这个操作,

vector.end()的值左--却可以,最后的运算是地址值的--,

set.begin()的值左--变成set.end()

set.end()的值左--变成最后一个元素

set.end()的值左++会报错。源码中作了特殊判断。

set.end()好像是红黑树中特殊的结点。

但是set中的所有正常的元素(end除外)都可以++,--,O(∩_∩)O~

临时编码的时候使用set,会因为这些trick愉快不少。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics