源地址:http://blog.csdn.net/byijie/article/details/8142859

从福州大学资料里摘下来的我现在能理解的泛型算法

algorithm

min(a,b) 返回a,b中的最小值

max(a,b)返回a,b中的最大值

fill(a,a+n,val) 用val填充数组

sort(a,a+n,cmp)

stable_sort(a,a+n,cmp)

list.sort(cmp) 基于链表的归并排序

make_heap(a,a+n,cmp) 默认是最大堆化,即cmp为真时a做叶子

pop_heap(a,a+n,cmp) 将堆顶元素移至a[n-1]且a[0..n-2]仍为堆

push_heap(a,a+n,cmp)将a[n-1]加入堆a[0..n-1]

sort_heap(a,a+n,cmp)将堆a[n-1]化为排序好的数组a[n-1]

lower_bound(a,a+n,val) 二分返回第一次出现val的位置(迭代器) 若没有这个值,返回这个数组里这个数的下确界

upper_bound(a,a+n,val) 返回一次出现位置的后一个位置(迭代器)

max_element(a,a+n,cmp) 返回数组最大值第一次出现位置(迭代器)

min_element(a,a+n,cmp)

lexicographical_compare(a,a+n,b,b+m,cmp) 按字典顺序比较大小

swap(a,b) 交换a,b

copy(a,a+n,b) 将a[0..n-1]拷贝到b[0..n-1]

swap_ranges(a,a+n,b) 交换a[0...n-1]和b[0...n-1]

unique_copy(a,a+n,b) 去除a[0...n-1]中重复的多余元素,拷贝到b中

STL的一些泛型算法的更多相关文章

  1. STL容器及泛型算法

    一.顺序容器 1.容器的选择 (1) 随机访问,选vector ,deque (2) 在中间插入或者删除元素,选list (3) 在头尾插入或删除元素 , 选deque 2.list的成员函数 (1) ...

  2. 【STL】帮你复习STL泛型算法 一

    STL泛型算法 #include <iostream> #include <vector> #include <algorithm> #include <it ...

  3. C++ Primer 学习笔记_45_STL实践与分析(19)--泛型算法的结构

    STL实践与分析 --泛型算法的结构 引言: 正如全部的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础. 算法最主要的性质是须要使用的迭代器种类.全部算法都指定了它的每一个迭代器形參可使用 ...

  4. 快速排序及STL中的sort算法

    快速排序基本思想是,对待排序序列进行划分(Partition),一次划分,选择一个元素作为枢轴,然后将所有比枢轴小的元素放到枢轴的左边,将比枢轴大的元素放到枢轴的右边.然后对该枢轴划分的左右子序列分别 ...

  5. C++ 泛型算法

    <C++ Primer 4th>读书笔记 标准容器(the standard container)定义了很少的操作.标准库并没有为每种容器类型都定义实现这些操作的成员函数,而是定义了一组泛 ...

  6. C++的那些事:容器和泛型算法

    一.顺序容器 1,标准库定义了3种类型的顺序容器:vector.list和deque.它们的差别主要在于访问元素的方式,以及添加或删除元素相关操作运算代价.标准库还提供了三种容器适配器:stack.q ...

  7. C++ Primer : 第十章 : 泛型算法 之 只读、写和排序算法

    大多数算法都定义在<algorithm>头文件里,而标准库还在头文件<numeric>里定义了一组数值泛型算法,比如accumulate. ●  find算法,算法接受一对迭代 ...

  8. STL六大组件之——算法小小小小的解析

    参考自侯捷的<stl源码剖析> stl算法主要分为非可变序列算法(指不直接修改其所操作的容器内容的算法),可变序列算法(指可以修改它们所操作的容器内容的算法),排序算法(包括对序列进行排序 ...

  9. Chapter10:泛型算法

    泛型算法的基础是迭代器. 迭代器令算法不依赖于容器,但是算法依赖于元素类型的操作.也即:算法永远不会执行容器的操作. 那么,如果想向容器中添加元素或者执行其他的一些操作呢?标准库提供了插入迭代器来完成 ...

随机推荐

  1. OCP-1Z0-051-题目解析-第8题

    8. View the Exhibit and examine the structure of the CUSTOMERS table. Which two tasks would require ...

  2. javascript每日一练(二)——javascript(函数,数组)

    一.函数 什么是函数 function show(){}//不带参数 function show(){return 123;}//不带参数,有返回值 function show(arg1, arg2, ...

  3. 全面解读Python Web开发框架Django

    全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...

  4. Codeforces Round #199 (Div. 2) C. Cupboard and Balloons

    C. Cupboard and Balloons time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  5. 用jQuery实现鼠标在table上移动进行样式变化

    1.定义样式 <style type="text/css"> .striped        {            background-color:red;    ...

  6. VC环境下编译OpenSSL(仅仅是个示例,网上还有许多相关文章)

    VC环境OpenSSL安装以及编程过程 SSL就是Secure Sockets Layer,是一种安全套接字协议,详情请参考链接中的介绍. 配置过程中需要生成一些mak文件,这些生成代码用perl脚本 ...

  7. 1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961696 输入文字 l 对话框 1.    插入,资源,选择对话框资源 2.    编辑对话框如下: ...

  8. 【Ubuntu】升到14,攻克了进入用户后没有菜单条导航栏的问题

    控制台还能够进,用ctrl+alt+f1用老账号登录,用sudo adduser test新建立一个名字叫test的帐号 然后就能够进去了,可能是配置文件坏掉了

  9. 模拟产生CBC LATCH与buffer busy wait等待事件

    数据库版本:11.2.0.4.0 1.查出表TEST相关信息 select rowid, dbms_rowid.rowid_row_number(rowid) rowid_rownum, dbms_r ...

  10. hdu3986Harry Potter and the Final Battle

    给你一个无向图,然后找出当中的最短路, 除去最短路中的随意一条边,看最糟糕的情况下, 新的图中,第一个点到末点的最短路长度是多少. 我的做法是: 首先找出最短路,然后记录路径, 再一条一条边的删, 删 ...