21xrx.com
2024-11-05 16:42:43 Tuesday
登录
文章检索 我的文章 写文章
C++常用算法介绍
2023-06-28 02:09:14 深夜i     --     --
C++ 常用算法 介绍

C++语言中有很多实用的算法,它们能够帮助你解决编程中的很多问题。在本文中,我们将介绍一些常用的C++算法。

1. std::sort()

这是一个非常常用的排序算法。它使用O(nlogn)的时间复杂度对数组或向量进行排序。使用这个算法排序的代码非常简单。只需要使用sort函数和一个比较函数,比较函数可以是lambda表达式或者函数指针。

示例:


#include <algorithm>

#include <vector>

#include <iostream>

bool greater(int a, int b)

  return a > b;

int main()

{

  std::vector<int> vec 4 ;

  std::sort(vec.begin(), vec.end(), greater);

  for (const auto &i : vec)

  

    std::cout << i << " ";

  

}

输出:


7 4 3 2 1

2. std::binary_search()

这是另一个常用的算法,它能够帮助你快速地查找有序数组或容器中的元素。如果值存在,则返回true,否则返回false。时间复杂度为O(logn)。

示例:


#include <algorithm>

#include <vector>

#include <iostream>

int main()

{

  std::vector<int> vec 1;

  if (std::binary_search(vec.begin(), vec.end(), 3))

  

    std::cout << "Element found in vector" << std::endl;

  

  else

  

    std::cout << "Element not found in vector" << std::endl;

  

}

输出:


Element found in vector

3. std::accumulate()

这个算法可以用来对一个容器中的元素进行累加,如下所示:


#include <algorithm>

#include <numeric>

#include <vector>

#include <iostream>

int main()

{

  std::vector<int> vec 2;

  int sum = std::accumulate(vec.begin(), vec.end(), 0);

  std::cout << "Sum of vector elements: " << sum << std::endl;

}

输出:


Sum of vector elements: 15

4. std::count()

这个算法可以用来计算在容器中出现指定元素的次数,如下所示:


#include <algorithm>

#include <vector>

#include <iostream>

int main()

{

  std::vector<int> vec 4;

  int count = std::count(vec.begin(), vec.end(), 3);

  std::cout << "Number of times 3 appears in vector: " << count << std::endl;

}

输出:


Number of times 3 appears in vector: 2

5. std::unique()

这个算法可以用来在容器中删除所有重复的元素,如下所示:


#include <algorithm>

#include <vector>

#include <iostream>

int main()

{

  std::vector<int> vec 5;

  std::sort(vec.begin(), vec.end());

  auto end = std::unique(vec.begin(), vec.end());

  vec.erase(end, vec.end());

  for (const auto &i : vec)

  

    std::cout << i << " ";

  

}

输出:


1 2 3 4 5

以上是一些C++中常用的算法,它们能够帮助你解决很多编程的问题,让你的代码更加高效、优美。当你需要处理数组或容器时,不妨考虑一下这些算法的使用。

  
  

评论区

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