正文

STL算法学习(二)2006-07-20 12:27:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/argol/16693.html

分享到:

/*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;}

阅读(4458) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册