预定义迭代器类

作者: iamsonormal2333 | 来源:发表于2016-10-17 00:33 被阅读42次

    从sort函数讲起

    STL sort函数接受指向第一个迭代器和指向超尾元素作为参数。&Receipts[0]是第一个元素的地址,&Receipts[SIZE]是最后一个元素后面的元素的地址。
    函数的调用方法如下

      sort(Receipts,Receipts+SIZE);
    

    STL提供了一些预定义迭代器。如copy()函数是STL提供的复制函数,可以实现从一个容器到另一个容器的复制(包括数组)。

      int casts[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
      vector <int> arr [10];
      copy (casts, casts+10, dice.begin());
    

    前两个迭代器参数表示要复制的范围,最后一个迭代器参数表示要将第一个元素复制到什么位置。

    ostram_iterator

    如果想直接显示到屏幕上,也可以使用copy函数。

    #include <iterator>
    stream_iterator <int,char> out_iter(cout, " ");
    

    此时out_iter是一个接口,第一个参数指出了发送给输出流的数据类型第二个模版参数指出了输出流使用的字符类型。构造函数的第一个参数是使用的输出流,第二个参数是每个数据之后的分隔符。
    可以这样使用迭代器:

      *out_iter++ = 15;//cout<<15<<" ";
    

    可以将之前的例子中的copy用于迭代器:

      copy(dice.begin(), dice.end(), out_iter);
    

    这意味着将整个容器中的内容拷贝到输出流中。同样的,iterator头文件中还有istream_iterator。

    其他预定义迭代器

    其他的预定义迭代器类还有reserve_iterator、back_insert_iterator、front_insert_iterator和insert_iterator。有关内容这里就不再赘述了,可以查阅相关手册了解,这里只是让大家对迭代器的使用有一定的了解

    相关文章

      网友评论

        本文标题:预定义迭代器类

        本文链接:https://www.haomeiwen.com/subject/bfgoyttx.html