/*adjacent_find 函数原型: template <class ForwardIterator> ForwardIterator adjacent_find(ForwardIterator first,ForwardIterator last); template <class ForwardIterator,class BinaryOperation> ForwardIterator adjacent_find(ForwardIterator first,ForwardIterator last BinaryOperation op); 功能:第一个版本,在序列[first,last)中查找相邻元素之间第一对相 等的元素,并返回这样一个前向迭代器,若找到它指向相等元素 对的第一个元素,没找到,则返回last。第二个版本相邻元素之 间的关系由用户指定。 binary_search 函数原型: template <class ForwardIterator,class Type> bool binary_search(ForwardIterator first,ForwardIterator last const Type& value); template <class ForwardIterator,class Type,class Compare> bool binary_search(ForwardIterator first,ForwardIterator last const Type& value,Compare comp); 功能:在有序序列中查找指定的元素。找到返回true,否则返回false. 第一个版本中序列是按小于操作符排序的。第二个版本由用户指定 的操作符排序。 sort 函数原型: template <class RandomAccessIterator> bool sort(RandomAccessIterator first,RandomAccessIterator last); template <class RandomAccessIterator,class Compare> bool sort(RandomAccessIterator first,RandomAccessIterator last Compare comp); 功能:对序列中的元素按某种次序排序。第一个版本按降序排序。第二个 版本由用户指定一个排序方式。 */#include <iostream>#include <algorithm>#include <vector>#include <assert.h> using namespace std; //相邻元素之间和为10 class Ten{ public: bool operator()(int a,int b) { return a+b == 10 ;}}; int main(){ int ia[] = {1,5,9,6,3,7,5,5}; vector<int> vec(ia,ia+8); vector<int>::iterator iter; //adjacent_find iter = adjacent_find(vec.begin(),vec.end()); assert(*iter == vec[6]); iter = adjacent_find(vec.begin(),vec.end(),Ten()); assert(*iter == vec[4]); //binary_search sort(vec.begin(),vec.end()); assert( binary_search(vec.begin(),vec.end(),3) == true ); sort(vec.begin(),vec.end(),greater<int>()); assert( binary_search(vec.begin(),vec.end(),3,greater<int>()) == true); cout << "OK! Test succeed!" << endl; system("pause"); return 0;}

评论