Bootstrap

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

目录

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

;