STL iterator

来源:互联网 发布:oracle 添加字段sql 编辑:程序博客网 时间:2024/06/04 20:14

近来读STL源码分析 对迭代器有了一个大概的了解


vector<>采用原生指针(T*)作为迭代器   因为vector采用连续内存空间  所以对vector进行遍历操作包括 p++ p-- p+n p-n p[n] ++p --p * -> 这些操作原生指针都可以完成 


map<, >采用自定义的迭代器 因为map底层采用RB-tree实现 对map进行遍历就是对一个RB_tree进行遍历 故需要重新定义p++ p--操作 大致方法就是构造一个iterator类


     把tree_node* 封装起来  重载++ -- -> * 操作


其实迭代器就是一种为了某个容器量身定做的可以遍历自身的特殊指针,所以每一种容器都有自己的迭代器供自身使用

0 0
原创粉丝点击