C++迭代器

C++的迭代器是为了使算法独立于所使用的容器类型而设计的,也就是说,C++的STL算法不会因为受使用的容器类型而限制(ps:也不会受数据类型的限制,因为STL提供了模板)。C++的迭代器种类比较多,从概念描述上可分为输入迭代器、输出迭代器、正向迭代器、双向迭代器和随机访问迭代器,每个容器类都定义了自己的迭代器,其类型不确定,需要查看具体的文档。

STL使用概念来描述可以满足算法使用要求的迭代器,使用改进来表示概念上的继承,使用模型表示概念的具体实现。指针可看成是迭代器的一种,如指向int的指针就是一种随机访问的迭代器模型。

sort()函数接受指向容器的第一个元素的迭代器和指向超尾元素的迭代器,用于升序排序,这是STL提供的一个很方便的函数。

C++几个重要的迭代器:ostream_iterator,istream_iterator,reverse_iterator,back_insert_iterator,front_insert_iterator,insert_iterator等。这些迭代器使用时要注意模板参数和构造参数,对输入迭代器和输出迭代器而言,模板参数是输入/输出的数据类型和输入/出流使用的字符类型组成,构造参数是具体的输入/输出流,如果输入流为空,输入失败,输出流后的第二个参数表示发送给输出流后每个数据项的分隔符,除此以外的迭代器的模板参数一般是一个容器类型,而构造参数是实际的类型标示符(ps:有些还有一些位置信息)。

copy()不仅可以将信息从一个容器复制到另一个容器,还可以将信息从容器复制到输出流,从输入流复制到容器中,还可以将信息插入到另一个容器中,这都跟迭代器的使用密切相关。

posted on 2016-09-24 12:37  bluecloudwyy  阅读(354)  评论(0编辑  收藏  举报