zoukankan      html  css  js  c++  java
  • C++细节6

    泛型算法

    大多数算法是通过遍历两个迭代器标记的一段元素来实现其功能。典型情况下,算法在遍历一段元素范围时,操纵其中的每一个元素。


    大多数情况下,每个算法都需要使用至少两个迭代器来指出该算法操纵的元素范围,第一个迭代器指向第一个元素,而第二个迭代器所指向的迭代器本身不是要操作的元素,而是被用作终止遍历的哨兵。


    对指定数目的元素做写入运算,或者写到迭代器的算法,都不检查目标的大小是否足以存储要写入的元素。

    //

    vector<int> vec;

    fill_n(vec.begin(), 10, 0); //error

    为了不出现上面的错误,引入back_inserter。需包含头文件<iterator>

    //

    vector<int> vec;

    fill_n(back_inserter(vec), 10, 0);// ok


    如果对输入序列的元素不做处理,但不修改原来的元素,而是创建一个新序列存储元素的处理结果。


    unique算法并没有改变原始容器的大小,只是将重复的元素放在了结尾,该函数返回不重复范围的结束的迭代器。


    迭代器主要有3类

    1、插入迭代器

    2、iostream迭代器

    istream_iterator<T>, ostream_iterator<T>,创建流迭代器时,必须指定迭代器所读写的对象类型

    3、反向迭代器


  • 相关阅读:
    Linux
    Monkey命令
    ADB命令
    DOS命令
    列表
    函数
    文件读写及实操项目
    Selenium2自动化——初体验
    新开淘宝店怎么提升信誉,是不是真的要刷钻?
    JSFL:导入根文件夹将所有图片添加库链接导出swf
  • 原文地址:https://www.cnblogs.com/zfluo/p/5131868.html
Copyright © 2011-2022 走看看