美文网首页
stl 算法自带总汇

stl 算法自带总汇

作者: 高斯_Cpper | 来源:发表于2018-08-28 12:04 被阅读0次

    算法,问题之解法也。
    以有限的解决逻辑或数学上的问题,这一专门科目我们称为算法。大学信息相关教育里面,与编程最有直接关系的科目,首推算法与数据结构。stl算法即是将最常被 运用的算法规范出来,其涵盖敬意有可能在每五年一次的C++标准委员会中不断增订。
    广义而言,我们所写的每个程序都是一个算法,其中的每个函数也都是一个算法,毕竟它们都用来解决或大或小的逻辑问题或数学问题。叭有用来解决特定问题(如排序、查找、最短路径、三点共线...),散开独显嫦 的交通分析与证明,这样的算法才具有可复用性。这次主要探讨的算法有:排序、查找、排列组合,以及用于数据移动、复制、删除、比较、组合、运算等等的算法。
    stl算法总览

    accumulate 元素累计

    所在文件 stl_numeric.h

    std::vector<int> vecE = {1,2,3,4,5,6,7,8,9,10};
    int sum = std::accumulate(vecE.begin(), vecE.end(), 0);
    sum : 55;
    

    这个算法比较简单,累计其和,如果要对元素复杂点的计算,用这个方法加仿函数,也可以实现,但不推荐这样做,受限比较多,还不如自己实现一个,所以该算法更适合做累计和就好。

    adjacent_difference与adjacent_find 相邻元素处理

    adjacent_difference 计算两个元素的差,个人感觉没有什么卵用的算法
    adjacent_find 默认查找两个相邻无素,通过自己加的仿函数可以实现查找到适合的相邻元素,用途比较少吧。还不如自己写的算法满足自己的项目需求。
    下面列出几个比较常用的

    copy 复制从(out)头开始
    copy_backward 复制从(out)尾开始
    count 计数
    find 查找
    random_shuffle 随机重排元素
    reverse 反转

    set_difference 差集
    set_intersection 交集

    sort 排序
    unique 去重

    相关文章

      网友评论

          本文标题:stl 算法自带总汇

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