当前位置: 首页> 汽车> 维修 > STL所有常用算法(全网最详细,一文全掌握,建议收藏)

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

时间:2025/8/23 20:28:30来源:https://blog.csdn.net/weixin_47768406/article/details/141558816 浏览次数: 0次

目录

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(求差集)

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: