一.count函数
algorithm头文件定义了一个count的函数,返回这个值出现次数的统计结果。 count : 在序列中统计某个值出现的次数
c=count(a.begin() , a.end() , x);//返回元素值为x的元素个数。
#include <iostream>
#include<algorithm>
#include<vector>
int main()
{
std::vector<int>a = { 1,2,3,3 };int c = count(a.begin(), a.end(), 3);//c=2
std::cout << c<< std::endl;
}
二、count_if函数:返回符合一定条件的元素个数。
#include <vector>
#include <algorithm>
#include<iostream>
using namespace std;
int main()
{
vector<int> coll = { 1,2,3,4,5,6,7};
int c = count_if(coll.begin(), coll.end(), [](int x) {return x > 3; });
cout << c << endl;//c=4
}
三、find、find_if与find_if_not函数
find查找“与被传入值相等”的第一个元素
find_if查找“满足某个准则”的第一个元素
find_if查找“不满足某个准则”的第一个元素
#include <vector>
#include <algorithm>
#include<iostream>
using namespace std;
bool comp(int x)
{
return x > 5;
}
int main()
{
vector<int> coll = { 1,2,3,4,8,5,6,7};
vector<int>::iterator vec_it0, vec_it1, vec_it2;
vec_it0 = find(coll.begin(),coll.end(),6);
vec_it1 = find_if(coll.begin(), coll.end(), [](int x) {return x > 5; });
vec_it2 = find_if(coll.begin(), coll.end(), comp);
cout << *vec_it0 << " " << *vec_it1 << " " << *vec_it2 << endl;//*vec_it0=6,*vec_it1=8*vec_it2=8
}