21xrx.com
2024-12-22 21:03:19 Sunday
登录
文章检索 我的文章 写文章
C++常用算法函数大全
2023-06-29 08:27:56 深夜i     --     --
C++ 常用算法 函数 大全 STL

C++是一种广泛使用的编程语言,它有着强大的算法库,可以让我们更方便地处理数据和进行复杂的计算。本文将介绍一些C++常用算法函数,方便我们更好地使用C++进行编程。

1. sort()

排序是一种常见的算法,sort()函数是C++中用于排序的函数,它可以对任何类型的数据进行排序,包括基本类型、结构体和类等。sort()函数使用快速排序算法的一种变体实现,可以非常快速和高效地排序。

使用sort()函数时,需要提供一个比较函数,用于指定排序的规则。比较函数需要接受两个参数,它们分别表示需要比较的两个元素,函数返回一个bool类型的值,表示两个元素之间的比较结果。

例如,下面的代码使用sort()函数对一个int数组进行排序:


#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

  int arr[] = 9;

  int n = sizeof(arr) / sizeof(arr[0]);

  sort(arr, arr + n);

  cout << "排序后的数组:\n";

  for (int i = 0; i < n; i++)

    cout << arr[i] << " ";

  return 0;

}

输出结果:

排序后的数组:

1 5 7 8 9 10

2. binary_search()

binary_search()函数是用于在有序序列中查找指定元素的函数。它的实现使用了二分查找算法,可以快速地在任何类型的有序序列中查找元素。

使用binary_search()函数时,需要提供一个起始位置和结束位置,以及要查找的元素,函数返回一个bool类型的值,表示是否找到了指定元素。

例如,下面的代码使用binary_search()函数在一个int数组中查找指定元素:


#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

  int arr[] = 6;

  int n = sizeof(arr) / sizeof(arr[0]);

  int x = 5;

  bool found = binary_search(arr, arr + n, x);

  if (found)

    cout << "找到了元素 " << x << endl;

  else

    cout << "未找到元素 " << x << endl;

  return 0;

}

输出结果:

找到了元素 5

3. accumulate()

accumulate()函数是用于将一个序列中的所有元素求和的函数。它可以用于任何类型的序列,包括数组、向量等。

使用accumulate()函数时,需要提供一个起始位置和结束位置,以及一个初始值,用于表示求和的初始值。函数返回求和后的结果。

例如,下面的代码使用accumulate()函数求一个int数组中所有元素的和:


#include <iostream>

#include <numeric>

using namespace std;

int main()

{

  int arr[] = 1;

  int n = sizeof(arr) / sizeof(arr[0]);

  int sum = accumulate(arr, arr + n, 0);

  cout << "数组元素之和为:" << sum << endl;

  return 0;

}

输出结果:

数组元素之和为:15

4. next_permutation()

next_permutation()函数是用于生成全排列的函数。它可以生成任何类型的序列的全排列,并可以根据指定的比较函数进行排序。

使用next_permutation()函数时,需要提供一个起始位置和结束位置,以及一个比较函数,用于指定排列的排序规则。函数返回一个bool类型的值,表示是否成功生成了下一个全排列。

例如,下面的代码使用next_permutation()函数生成一个int数组的全排列:


#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

  int arr[] = 2;

  int n = sizeof(arr) / sizeof(arr[0]);

  sort(arr, arr + n);

  do {

    for (int i = 0; i < n; i++)

      cout << arr[i] << " ";

    cout << endl;

  } while (next_permutation(arr, arr + n));

  return 0;

}

输出结果:

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

总结

本文介绍了C++常用的算法函数,包括sort()、binary_search()、accumulate()和next_permutation()等。这些函数能够让我们更高效地进行数据处理和计算,加快我们的编程效率。在日常编程中,可以根据实际需要选择合适的算法和函数,提高代码的可读性和效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复