zoukankan      html  css  js  c++  java
  • 读书笔记——Accelerated C++ Chapter 6

    一、标准库算法:(除特殊说明,否则都是在<algorithm>中定义的)

    1. find_if:接受迭代器和谓词,返回迭代器(指向满足谓词的第一个元素)

    a=find_if(i,str.end(),not_space());

    可用于编写split。

    2. equal:接收迭代器和谓词,返回布尔值。

    equal(s.begin(),s.end(),s.rbegin());

    可用于编写判断回文函数。

    3. search:接收两对迭代器参数,返回迭代器。第一对知识了要查找的序列,第二对指示了一个序列——为这个序列定位。如果查找失败,将返回第二个参数。

    Search(i,e,sep.begin(),sep.end());

      可用于编写查找URL函数。

    4. find:接收迭代器和元素,如果找不到所要查找的值,将返回他的第二个参数。

    Find(s.homework.begin(),s.homework.end(),0)

    5. transform: 接收三个迭代器和一个函数。前两个迭代器指定了待转换元素的区间,第三个迭代器是一个目的地,将保存函数(第四个参数)的运行结果。

    Transform(student.begin(),student.end(),back_inserter(grades),grade)

    6. accumulate:在<numeric>中定义的。四个参数,头两个指示了一个区间,而函数所做的工作是对区间中的值求和,函数的第三个参数所给定的值是求和结果的开始。第三个参数的类型决定了和的类型。

    accumulate(v.begin(),v,end(),0,0)

    7. remove_copy:将满足条件(值)的复制到目的地。

    Remove_copy(s.homework.begin(),s.homework.end(),back_inserter(nonzero),0)

    8. remove_copy_if :将不满足谓词的元素复制到目的地。

    Remove_copy_if(students.begin(),students.end(),back_inserter(fail),pgrade)

    9. Remove_if:将不满足谓词的元素复制到序列的开头。

    Remove_if(students.begin(),students.end(),fgrade)

    10. stable_patition: 除了划分区域以外,还会让各区域内的元素的相互顺序保持不变。

    Stable_patition(students.begin(),studens.end(),pgrade)

    二、其他库函数

    Isalnum函数:检验他的参数是否都为一个字母数字字符(一个字母或一个数字)。

     

    三、一些定义

    1.谓词:接收元素,返回布尔值的函数。

    2.迭代器适配器:产生迭代器的函数。常用的是insert_iterators,会让关联的容器动态增长,经常被用作复制算法的目的地。在<iterators>中定义。

    3.泛型(后续第八章会进行总结)

    四、补充

    1.中值和平均值可以反应数值特征。所以在分析算法中可以使用

    2.算法总用于元素本身,而非容器。即是改变元素在容器中的位置,但是并没有改变容器本身的特性,例如remove_if。

    3.容器的成员可以作用于容器,也可以作用于容器中的元素。

    4.在运用迭代器时要注意迭代器是否有效,因为在某种成员函数操作之后,迭代器所指元素可能已经不在原位置了。

  • 相关阅读:
    CSS颜色代码大全
    swfuploadphp上传说明
    projectlocker 使用
    十大简单易用的免费在线HTML编辑器
    c#读取docx(ooxml)
    直接在网页上显示word2007文档
    树莓派4b noMachine远程连接4000端口问题
    visual studio问题集合
    设置TrackMouseEvent捕获WM_MOUSEHOVER和WM_MOUSELEAVE消息
    atlwin中不停发WM_PAINT消息原因分析
  • 原文地址:https://www.cnblogs.com/wenhuozhujiangcha/p/Reading_notes_AcceleratedC.html
Copyright © 2011-2022 走看看