zoukankan      html  css  js  c++  java
  • 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()不仅可以将信息从一个容器复制到另一个容器,还可以将信息从容器复制到输出流,从输入流复制到容器中,还可以将信息插入到另一个容器中,这都跟迭代器的使用密切相关。

  • 相关阅读:
    从IRP说起(转)
    IoSkipCurrentIrpStackLocation .(转)
    IO_REMOVE_LOCK使用方法小结(转载加改正)
    TCP释放连接时为什么time_wait状态必须等待2MSL时间
    网络编程之select
    Ubuntu18.04 安装Chrome浏览器
    Ubuntu修改系统时间
    Linux常用命令总结
    struct ifconf和struct ifreq,获取网线插入状态
    一个简单的客户单与服务端程序
  • 原文地址:https://www.cnblogs.com/bluecloudwyy/p/5902999.html
Copyright © 2011-2022 走看看