头文件#include<algorithm>中常用算法函数

本文介绍了C++标准库中一些常用的算法函数,包括排序(std::sort)、求最大值(std::max)和最小值(std::min)、反转容器(std::reverse)、计数(std::count)、查找(std::find)以及二分查找(std::binary_search)等。这些函数适用于不同的容器类型,能有效提高代码效率。
摘要由CSDN通过智能技术生成

1.std::sort()

  • 作用:对容器中的元素进行排序。
    使用示例:
std::vector<int> nums = {3, 1, 4, 2, 5};
std::sort(nums.begin(), nums.end());

注意事项:默认按照升序排序。可以使用自定义的比较函数来实现特定的排序方式。

适用容器:

适用于std::vector、std::array、std::deque等可随机访问容器。

2.std::max()

  • 作用:返回两个值中的较大值。
    使用示例:
int a = 3;
int b = 5;
int maxVal = std::max(a, b);
适用容器:

适用于任何支持比较操作的容器类型。

3.std::min()

  • 作用:返回两个值中的较小值。
    使用示例:
int a = 3;
int b = 5;
int minVal = std::min(a, b);
适用容器:

适用于任何支持比较操作的容器类型。

4.std::reverse()

  • 作用:反转容器中的元素顺序。
    使用示例:
std::vector<int> nums = {1, 2, 3, 4, 5};
std::reverse(nums.begin(), nums.end());
适用容器:

适用于std::vector、std::deque等双向迭代器容器。

5.std::count()

  • 作用:计算指定值在容器中出现的次数。
    使用示例:
std::vector<int> nums = {1, 2, 2, 3, 2, 4, 2};
int count = std::count(nums.begin(), nums.end(), 2);
适用容器:

适用于任何支持遍历的容器类型。

6.std::find()

  • 作用:在容器中查找指定值的位置。
    使用示例:
std::vector<int> nums = {1, 2, 3, 4, 5};
auto it = std::find(nums.begin(), nums.end(), 3);
if (it != nums.end()) {
    // 找到了指定值
}
适用容器:

适用于任何支持遍历的容器类型。

7.std::binary_search()

作用:在已排序的容器中执行二分查找。
使用示例:

std::vector<int> nums = {1, 2, 3, 4, 5};
bool found = std::binary_search(nums.begin(), nums.end(), 3);
适用容器:

适用于已排序的可随机访问容器,如std::vector、std::array等。

8.std::accumulate()

  • 作用:计算容器中元素的总和。
    使用示例:
std::vector<int> nums = {1, 2, 3, 4, 5};
int sum = std::accumulate(nums.begin(), nums.end(), 0);
适用容器:

适用于任何支持遍历的容器类型。

9.std::transform()

  • 作用:对容器中的元素进行转换操作,并将结果存储到另一个容器中。
    使用示例:
std::vector<int> nums = {1, 2, 3, 4, 5};
std::vector<int> squared;
std::transform(nums.begin(), nums.end(), std::back_inserter(squared), [](int x) { return x * x; });
适用容器:

适用于任何支持遍历的容器类型,并且结果需要存储在另一个容器中。

10.std::copy()

  • 作用:将一个容器的元素复制到另一个容器中。
    使用示例:
std::vector<int> nums = {1, 2, 3, 4, 5};
std::vector<int> copied(nums.size());
std::copy(nums.begin(), nums.end(), copied.begin());
适用容器:

适用于任何支持遍历的容器类型,将元素复制到另一个容器中。

11.std::unique()

  • 作用:移除容器中的重复元素,并返回指向新的尾部的迭代器。
    使用示例:
std::vector<int> nums = {1, 2, 2, 3, 3, 4, 4, 5};
auto it = std::unique(nums.begin(), nums.end());
nums.erase(it, nums.end()); // 移除重复元素
适用容器:

适用于支持连续内存的容器类型,如std::vector、std::string等。

12.std::min_element()

  • 作用:找到容器中的最小元素,并返回指向它的迭代器。
    使用示例:
std::vector<int> nums = {5, 2, 8, 1, 6};
auto minIt = std::min_element(nums.begin(), nums.end());
int minValue = *minIt; // 获取最小值
适用容器:

适用于任何支持遍历的容器类型。

13.std::max_element()

  • 作用:找到容器中的最大元素,并返回指向它的迭代器。
    使用示例:
std::vector<int> nums = {5, 2, 8, 1, 6};
auto maxIt = std::max_element(nums.begin(), nums.end());
int maxValue = *maxIt; // 获取最大值
适用容器:

适用于任何支持遍历的容器类型。

14.std::find_if()

  • 作用:在容器中查找满足指定条件的元素,并返回指向它的迭代器。
    使用示例:
std::vector<int> nums = {1, 2, 3, 4, 5};
auto it = std::find_if(nums.begin(), nums.end(), [](int x) { return x % 2 == 0; });
if (it != nums.end()) {
    // 找到了满足条件的元素
}
适用容器:

适用于任何支持遍历的容器类型。

15.std::replace()

  • 作用:将容器中所有等于某个值的元素替换为另一个值。
    使用示例:
std::vector<int> nums = {1, 2, 2, 3, 2, 4, 2};
std::replace(nums.begin(), nums.end(), 2, 0); // 将所有的2替换为0
适用容器:

适用于支持连续内存的容器类型,如std::vector、std::string等。

16.std::partition()

  • 作用:根据指定条件重新排列容器中的元素,使得满足条件的元素位于前部分,不满足条件的元素位于后部分,并返回分割点的迭代器。
    使用示例:
std::vector<int> nums = {3, 1, 4, 2, 5};
auto partitionPoint = std::partition(nums.begin(), nums.end(), [](int x) { return x % 2 == 0; }); // 分割奇偶数
适用容器:

适用于双向迭代器容器,如std::vector、std::deque等。

17.std::random_shuffle()

  • 作用:随机重排容器中的元素顺序。
    使用示例:
std::vector<int> nums = {1, 2, 3, 4, 5};
std::random_shuffle(nums.begin(), nums.end()); //  随机重排元素顺序
适用容器:

适用于支持随机访问的容器类型,如std::vector、std::array等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值