首页 > 编程语言 >STL所有常用算法(全网最详细,一文全掌握,建议收藏)

STL所有常用算法(全网最详细,一文全掌握,建议收藏)

时间:2024-08-28 08:53:44浏览次数:9  
标签:元素 set 自定义 STL 全网 算法 查找 find

目录

1.分类和介绍

2.遍历算法

2.1 for_each算法(遍历执行)

2.2 transform算法(搬运)

3.查找算法

3.1 find算法(具体查找)

3.2 find_if算法(条件查找)

3.3  adjacent_find(查找相邻重复元素)

3.4  binary_search(二分查找有序序列中元素是否存在)

3.5  count(统计元素出现次数)

3.6  count_if(按条件统计元素出现次数)

4.排序算法

4.1 sort(排序)

4.2 random_shuffle(洗牌)

4.3 merge(合并))

4.4 reverse(反转)

5.拷贝和替换算法

5.1 copy(拷贝) 

5.2  replace(替换)

5.3 replace_if(按照条件替换)

5.4 swap(互换)

6.算术生成算法

6.1 accumulate(累加)

6.2 fill(填充)

7.集合算法

7.1 set_intersection(求交集)

7.2 set_union(求并集)

7.3 set_difference(求差集)

1.分类和介绍

2.遍历算法

2.1 for_each算法(遍历执行)

2.2 transform算法(搬运)

3.查找算法

3.1 find算法(具体查找)

         需要注意的是,容器中存放的是自定义数据类型时,进行find操作需要重载自定义类的==赋值运算符,这样find才知道怎么对比自定义数据类型。

3.2 find_if算法(条件查找)

3.3 adjacent_find(查找相邻重复元素)

3.4 binary_search(二分查找有序序列中元素是否存在)

3.5 count(统计元素出现次数)

        注意:如果容器中包含的是自定义数据类型,需要在自定义类中重载==赋值运算符。

3.6 count_if(按条件统计元素出现次数)

         自定义数据类型需要写好bool类型谓词,统计哪一个属性,条件是什么。

4.排序算法

 4.1 sort(排序)

4.2 random_shuffle(洗牌)

4.3 merge(合并))

注意:合并默认两个都是升序 ,结果也是升序。如果需要降序合并,需要加上谓词greater<>()

4.4 reverse(反转)

5.拷贝和替换算法

5.1 copy(拷贝) 

        实际上直接用=赋值也可以拷贝

 5.2 replace(替换)

注意:区间内的所有旧元素都会被替换。如果要实现自定义类型数据替换,需要类内重载==赋值运算符。 

5.3 replace_if(按照条件替换)

         替换迭代器区间内所有满足谓词条件的元素。

 5.4 swap(互换)

注意:要包含相同类型元素的容器才能互换,容量大小无所谓。

6.算术生成算法

 6.1 accumulate(累加)

起始值一般为0,即sum从0开始累加。 

6.2 fill(填充)

7.集合算法

7.1 set_intersection(求交集)

注意:需要先开辟两个容器中较小的空间大小,而且函数返回的是目标容器最后一个元素的迭代器地址。 

7.2 set_union(求并集)

注意:需要先开辟两个容器空间大小相加的空间,而且函数返回的是目标容器最后一个元素的迭代器地址。  

7.3 set_difference(求差集)

标签:元素,set,自定义,STL,全网,算法,查找,find
From: https://blog.csdn.net/weixin_47768406/article/details/141558816

相关文章

  • 大模型备案全网最详细流程解读(附附件+重点解读)
    文章目录一、语料安全评估二、黑盒测试三、模型安全措施评估四、性能评估五、性能评估六、安全性评估七、可解释性评估八、法律和合规性评估九、应急管理措施十、材料准备十一、【线下流程】大模型备案线下详细步骤说明十二、【线上流程】算法备案填报流程及重难点......
  • 主成分分析结合遗传算法优化的随机森林通用代码
    importpandasaspdfromsklearn.preprocessingimportStandardScalerfromsklearn.decompositionimportPCAfromsklearn.ensembleimportRandomForestClassifier,RandomForestRegressorfromsklearn.metricsimportaccuracy_score,mean_squared_error,mean_abso......
  • 玄学乱搞算法——模拟退火,SA
    \(\texttt{0x00:}\)前言在此之前只对模拟退火的大名有所耳闻,但并未在我的认知上激起太大的风浪,直到……在外培的一场模拟赛上,队内大佬yyc在丝毫没有思路的情况下用SA骗了70pts,赛后使得给我们上课的清华姚班老师惊掉下巴。至此,在感叹SA的神力的同时,它也进入了我的学习计......
  • 码农必看!《Hello 算法》
    码农必看!《Hello算法》动画图解、一键运行的数据结构与算法教程下载地址夸克:https://pan.quark.cn/s/12b1e0c4747e如果夸克网盘空间不足,可以参考这篇文章免费扩容20T夸克免费扩容20T本书是一份开源、免费的数据结构与算法入门教程,特别适合新手。书中包含14种编程语言......
  • 004 路由算法与路径选择策略
    引言路径选择是路由器的核心功能,决定了数据包从源头到达目的地的路径。本篇博文将深入探讨各种路由算法和路径选择策略,帮助你理解路由器如何在复杂网络中进行决策。1.路由算法分类静态路由:管理员手动配置,适用于简单、稳定的网络。静态路由具有高稳定性,但不具备自动恢复......
  • 莫队算法
    特点:快速、离线处理(支持查询,不支持修改)、暴力处理长序列问题核心思想:双指针的移动分块和排序示例题洛谷P1972[SDOI2009]HH的项链ps:实际这道题用莫队会被卡,仅用于举例#include<bits/stdc++.h>usingnamespacestd;structq{intl;intr;intid;}ql......
  • C++学习随笔——算法transform和lambda的用法
    std::transform是一个常用的STL算法,用于对序列中的每个元素进行操作,并将结果存储在另一个序列中。lambda表达式是一种匿名函数,可以在需要传递函数作为参数的场景中使用,比如在std::transform中。语法://一元操作std::transform(InputIterator1first1,InputIterator1la......
  • 【图像分割】复合粒子群算法CPSOGSA图像多级阈值分割【含Matlab源码 7349期】
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信或扫描文章底部QQ二维码。......
  • 算法与数据结构——哈希表
    哈希表哈希表(hashtable),又称散列表,它通过建立键key与值value之间的映射,实现高效的元素查询。具体而言,我们向哈希表中输入一个键key,则可以在O(1)时间内获取对应的值value。除哈希表外,数组和链表也可以实现查询功能,他们的效率对比如下表:添加元素:仅需将元素添加至数组(链表)的尾部......
  • 逻辑回归算法 0基础小白也能懂
    逻辑回归算法0基础小白也能懂(附代码)原文链接啥是逻辑回归算法逻辑回归(LogisticRegression)是一种广泛用于分类任务的统计模型,特别适用于二元分类问题。尽管名称中带有“回归”,但逻辑回归主要用于分类。逻辑回归算法包含以下几个关键部分:线性回归与分类,Sigmoid函数与决策边......