今天对stl中vector和set迭代器边界值的++和--做了些试验。
也查看了一下源码。发现
vector.begin()的值左--就会报错,原因是源码中有以判断如果是第一个元素时不可以进行这个操作,
vector.end()的值左--却可以,最后的运算是地址值的--,
set.begin()的值左--变成set.end()
set.end()的值左--变成最后一个元素
set.end()的值左++会报错。源码中作了特殊判断。
set.end()好像是红黑树中特殊的结点。
但是set中的所有正常的元素(end除外)都可以++,--,O(∩_∩)O~
临时编码的时候使用set,会因为这些trick愉快不少。
相关推荐
C++ STL迭代器机制剖析 -- C++经典书籍哦
C++ STL中迭代器介绍 迭代器 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器不仅仅是指针,因此你不能认为他们一定...
STL迭代器类型 输入迭代器,输出迭代器,双向迭代器,向前迭代器,随机迭代器...
关于 C++ STL 迭代器 的最佳入门教程之一。 轻松、幽默、干脆、一看就会!却不乏C++编程思想之启发!
由大连理工资深教授讲解有关c++语言中STL - 迭代器部分,讲解深入透彻,非常有参考价值
介绍博客:http://blog.csdn.net/chengonghao/article/details/51360792
STL源码剖析--侯捷,STL源码剖析--侯捷STL源码剖析--侯捷STL源码剖析--侯捷STL源码剖析--侯捷
C++ STL--数据结构与算法实现(余文溪)示例程序代码.rar
X-CUBE-STL-H7 safety manual 安全手册
本人学习STL的心得和体会,还有对STL的总结!
走近STL 简单的STL入门 STL用法
下面小编就为大家带来一篇浅谈c++ stl迭代器失效的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
在制作实际的实际视频时,您将学习STL的核心概念,例如容器,算法,实用程序类,lambda表达式,迭代器等。 这些视频将帮助您充分利用STL,并向您展示如何以更好的方式进行编程。 在课程结束时,您将掌握最新的C ++ ...
本实验主要练习容器set、multiset、map、multimap的使用方法,插入迭代器、反向迭代器的用法,以及四种非变异算法的基本用法。 实验器材: VScode 实验内容: 一.回顾以上四种容器相关的例题(不作为实验报告内容)...
STL是高效的C++程序库,是大量类模板和函数模板的聚集,主要的组成部分包括容器、迭代器、算法、函数等。其中容器是存放对象的集合,使用类模板方式; 选代器是容器与算法的粘合剂,是所谓的泛型指针, 使用类模板方式...
对于迭代器部分-如果您需要编写迭代器,则iterator_interface会将其设置为: struct repeated_chars_iterator { using value_type = char ; using difference_type = std:: ptrdiff_t ; using pointe
STL源码剖析对应的全部源码 与书上的东西是对应的,可以用来学习。新手上传5个积分意思意思就行,希望可以帮助到需要的人。
# The following STL containers are currently supported: # # std::vector<T> -- via pvector command # std::list<T> -- via plist or plist_member command # std::map,T> -- via pmap or pmap_member command #...
python库。 资源全名:numpy-stl-1.3.4.tar.gz