其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
iterator 的使用

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

     iterator有istream_iterator ostream_iterator forward iterator bidirection iterator random access iterator 这些是一些常用的iterator根据功能分的。
    另外还有 insert iterator 中有 back_insert_iterator or back_insert() front_insert_iterator or front_iterator() insert_iterator()区别在于方向的不一样。在insert_iterator中的方向通过用户指定可以实现back 和front的功能。
  在一般声明一个container的时候,一般都是mutable的iterator,而一般在函数调用中使用到的iterator都是constant iterator,因才如果在函数中不需要改变container的信息,那么最好declare constant iterator ,将mutable 的iterator转化位constant iterator 是可以的,但是相反方向上的转化是不可行的。
  另外在使用iterator的时候一定要考虑合适的algorithm,STL encourage efficient combination and discourage unefficient combination.
对于set和multiset iterator and constant_iterator在实现的时候都是constant bidirection iterator actually they are the same type.
原因在于set所允许修改内容的步骤是先将原来的key delete or erase 然后通过成员函数进行insert(),所以不允许set的iterator 为mutable.
类似的情况在map 和multi map中同样存在。但是区别在于map中的value是可以修改的。




相关文章

相关软件