STL算法(1) C++ 查找算法

来源:互联网 发布:linux凝思重启网卡命令 编辑:程序博客网 时间:2024/06/05 06:46

A.必须包括的头文件

STL中的算法函数:#include<algorithm>

STL中的数值函数:#include<numeric>,#include<functional>


1,.查找算法

   (1),adjacent_find:  在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的ForwardIterator。否则返回last。重载版本使用输入的二元操作符代替相等的判断


    (2)count:利用等于操作符,把标志范围内的元素与输入值比较,返回相等元素个数。

      例子:cout<<count(ivec.begin() , ivec.end() , searchValue)


   (3)binary_search: 在有序序列中查找value,找到返回true。重载的版本实用指定的比较函数对象或函数指针来判断相等。


   (4count_if,利用输入的操作符,对标志范围内的元素进行操作,返回结果为true的个数。

 vector<int> vec;
bool owner_order(int value)
{
return value >= 3;
}
int main()
{
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(3);
vec.push_back(4);
vector<int>::iterator it_i;
cout<<count_if(vec.begin(),vec.end(),owner_order)<<endl;//计算出现次数
//owner_order 是自定义函数
}


   (5)equal_range: 功能类似equal,返回一对iterator,第一个表示lower_bound,第二个表示upper_bound。

   
    (6)find:利用底层元素的等于操作符,对指定范围内的元素与输入值进行比较。当匹配时,结束搜索,返回该元素的一个InputIterator。


   (7) find_end: 在指定范围内查找"由输入的另外一对iterator标志的第二个序列"的最后一次出现。找到则返回最后一对的第一个ForwardIterator,否则返回输入的"另外一对"的第一个ForwardIterator。重载版本使用用户输入的操作符代替等于操作。


   (8)find_first_of:在指定范围内查找"由输入的另外一对iterator标志的第二个序列"中任意一个元素的第一次出现。重载版本中使用了用户自定义操作符。


   (9) find_if: 使用输入的函数代替等于操作符执行find。


   (10) lower_bound: 返回一个ForwardIterator,指向在有序序列范围内的可以插入指定值而不破坏容器顺序的第一个位置。重载函数使用自定义比较操作。


    (11)upper_bound:返回一个ForwardIterator,指向在有序序列范围内插入value而不破坏容器顺序的最后一个位置,该位置标志一个大于value的值。重载函数使用自定义比较操作。


    (12)search: 给出两个范围,返回一个ForwardIterator,查找成功指向第一个范围内第一次出现子序列(第二个范围)的位置,查找失败指向last1。重载版本使用自定义的比较操作。


     (13)search_n:在指定范围内查找val出现n次的子序列。重载版本使用自定义的比较操作。

  





原创粉丝点击