find
API
/*
find 算法 查找元素
@param beg 容器开始迭代器
@param end 容器结束迭代器
@param value 查找的元素
@return 迭代器
*/
find(iterator beg, iterator end, value);
实例
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main() {
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
v.push_back(50);
vector<int>::iterator ret = find(v.begin(),v.end(),30);
if(ret!=v.end()){
cout<<*ret<<endl;
}
return 0;
}
find_if
API
/*
find_if 算法 条件查找
@param beg 容器开始迭代器
@param end 容器结束迭代器
@param callback 回调函数或者谓词(返回 bool 类型的函数对象)
@return 迭代器
*/
find_if(iterator beg, iterator end, _callback)
实例
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
bool callback(int num){
return num > 25;
}
int main(){
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
v.push_back(50);
vector<int>::iterator it = find_if(v.begin(),v.end(),callback);
if (it != v.end())
{
cout<< *it << endl;//30
}else{
}
return 0;
}
adjacent_find
API
/*
adjacent_find 算法 查找相邻重复元素
@param beg 容器开始迭代器
@param end 容器结束迭代器
@param _callback 回调函数或者谓词(返回 bool 类型的函数对象)
@return 返回相邻元素的第一个位置的迭代器
*/
adjacent_find(iterator beg, iterator end, _callback);
实例
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
bool callback(int num){
return num > 25;
}
int main(){
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(20);
v.push_back(30);
v.push_back(30);
vector<int>::iterator it = adjacent_find(v.begin(),v.end());
if (it != v.end())
{
cout<< *it << endl; //20
}else{
}
return 0;
}
binary_search
API
/*
binary_search 算法 二分查找法
注意: 在无序序列中不可用
@param beg 容器开始迭代器
@param end 容器结束迭代器
@param value 查找的元素
@return bool 查找返回 true 否则 false
*/
bool binary_search(iterator beg, iterator end, value);
实例
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
bool callback(int num){
return num > 25;
}
int main(){
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
v.push_back(50);
bool ret = binary_search(v.begin(),v.end(),20);
if (ret)
{
cout<<"找到"<<endl;
}else{
cout<<"未找到"<<endl;
}
return 0;
}
count
API
/*
count 算法 统计元素出现次数
@param beg 容器开始迭代器
@param end 容器结束迭代器
@param value 回调函数或者谓词(返回 bool 类型的函数对象)
@return int 返回元素个数
*/
count(iterator beg, iterator end, value);
实例
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
// bool callback(int num){
// return num > 25;
// }
int main(){
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(20);
v.push_back(20);
int ret = count(v.begin(),v.end(),20);
cout<<ret<<endl;//3
return 0;
}
count_if
API
/*
count_if 算法 统计元素出现次数
@param beg 容器开始迭代器
@param end 容器结束迭代器
@param callback 回调函数或者谓词(返回 bool 类型的函数对象)
@return int 返回元素个数
*/
count_if(iterator beg, iterator end, _callback);
实例
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
bool callback(int num){
return num > 15;
}
int main(){
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(20);
v.push_back(20);
int ret = count_if(v.begin(),v.end(),callback);
cout<<ret<<endl;//4
return 0;
}
网友评论