温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++的STL算法怎么使用

发布时间:2021-11-29 15:20:18 来源:亿速云 阅读:146 作者:iii 栏目:大数据

这篇文章主要介绍“C++的STL算法怎么使用”,在日常操作中,相信很多人在C++的STL算法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++的STL算法怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

STL算法就是像查找、搜索、删除等操作的通用函数,其应用范围很广。要使用STL算法,应用程序必须包含头文件:

#include <algorithm>

使用STL算法

1.count()与count_if()
算法std:::count()和count_if()计算给定范围内的元素数。
下面演示使用STL算法std::count()和count_if()分别计算有多少个元素包含指定值和满足指定条件:

#include<algorithm>#include<vector>#include<iostream>using namespace std;template<typename elementType>bool IsEven(const elementType& number)//一元谓词{
   
   
   return {
   
   
   (number%2)==0};}int main(){
   
   
   
	vector<int>vecIntegers;for(int nNum=1;nNum<20;++nNum)
		vecIntegers.push_back(nNum);//产生一个1到19的数组
	size_t nNumZeroes=count(vecIntegers.begin(),vecIntegers.end(),0);
	cout<<"数组中存在0的个数为:"<<nNumZeroes<<endl;
	size_t nNumEvenElements=count_if(vecIntegers.begin(),vecIntegers.end(),IsEven<int>);
	cout<<"数组中存在偶数的个数为:"<<nNumEvenElements<<endl;return 0;}

2.search与search_n()
search()用于在一个序列中查找另一个序列
search_n()用于在容器中查找n个相邻的指定值
两个函数都返回一个迭代器,它指向找到的第一个模式。使用迭代器之前,务必将其与end()进行比较。
下面将演示如何使用search()和search_n()在集合中查找序列。

auto iRange1=search(vecIntegers.begin()   //集合首
				  ,vecIntegers.end()     //集合尾
				  ,listIntegers.begin()  //查找序列首
				  ,listIntegers.end());  //查找序列尾auto iRange2=search_n(vecIntegers.begin()  //搜索{9,9,9}在vecIntegers中首次出现的位置,vecIntegers.end(),3   //相同待查找元素的个数,9); //待查找的元素

到此,关于“C++的STL算法怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI