algorithm中常用的现成算法

来源:互联网 发布:linux python退出程序 编辑:程序博客网 时间:2024/05/16 23:36

algorithm中常用的现成算法

1.binary_search()  确定容器中是否存在某个元素2.equal() 确定两个集合中的所有元素皆相同。3.lower_bound() 从头到尾,查找第一个大于或者等于所列元素的值的位置            用法,参考下面的min_element();4.upper_bound()  从头到尾,查找第一个大于所列元素的值的位置5.make_heap( ) 创建一个堆并以序列的形式输出6.max() 返回两个元素间的较大者7.max_element() 返回序列中的最大值8.min() 返回两个元素中的较小者9.min_element()  返回序列中的最小值            int a[]={1,4,66,43,2,56,443,23,234,4};            int b= min_element(a,a+7)-a;            int c= max_element(a,a+7)-a;            如果想取值的话,直接加*            :       *max_element(a,a+n)10.mismatch()    查找两个序列中的第一个不相同的位置11.pop_heap()   从一个堆中移除一个最大的元素12.push_heap()   添加一个元素至堆13.reverse()   将给定序列反转顺序,范围。14.sort()   将序列升序排序15.sort_heap()  将堆转变为有序序列16.swap()   交换两个对象的值17.unique()  移除连续的重复元素            注意连续两个字,也就是说明了要先进性排序操作            为什么呢?            因为unique函数并没有把重复的元素删掉,他只是把那些重复的元素移动            到了本序列的末尾,            返回值是不重复序列的位置指针。            所以如何显示不重复序列呢?                1.一种方法是直接将不重复序列指针 it 到 vector.end()                    对此阶段进行 删除                    用erase()函数                    erase(it,vector.end());                2.直接将vector.begin 到不重复序列尾的 位置指针 it 将元素输出来                    即,                        vector<int>::iterator it=a.begin();                        while(it!=  unique(a.begin(),a.end()))                        {                            cout<<*it<<" ";                            it++;                        }            VECTOR_STRING::iterator iNameTor;              iNameTor = unique(vecNames.begin(), vecNames.end());              cout << "after unique(), contents are:" << endl;              printVec(vecNames);              cout << "unique return a iterator, point to the first Duplicate element " << endl;              cout << iNameTor - vecNames.begin() << endl << endl;              vecNames.erase(iNameTor, vecNames.end()); //删除重复元素              cout << "after erase(), contents are:" << endl;