Bootstrap

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

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等。

;