STL的一些泛型算法
源地址: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的一些泛型算法的更多相关文章
- STL容器及泛型算法
		一.顺序容器 1.容器的选择 (1) 随机访问,选vector ,deque (2) 在中间插入或者删除元素,选list (3) 在头尾插入或删除元素 , 选deque 2.list的成员函数 (1) ... 
- 【STL】帮你复习STL泛型算法 一
		STL泛型算法 #include <iostream> #include <vector> #include <algorithm> #include <it ... 
- C++ Primer 学习笔记_45_STL实践与分析(19)--泛型算法的结构
		STL实践与分析 --泛型算法的结构 引言: 正如全部的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础. 算法最主要的性质是须要使用的迭代器种类.全部算法都指定了它的每一个迭代器形參可使用 ... 
- 快速排序及STL中的sort算法
		快速排序基本思想是,对待排序序列进行划分(Partition),一次划分,选择一个元素作为枢轴,然后将所有比枢轴小的元素放到枢轴的左边,将比枢轴大的元素放到枢轴的右边.然后对该枢轴划分的左右子序列分别 ... 
- C++ 泛型算法
		<C++ Primer 4th>读书笔记 标准容器(the standard container)定义了很少的操作.标准库并没有为每种容器类型都定义实现这些操作的成员函数,而是定义了一组泛 ... 
- C++的那些事:容器和泛型算法
		一.顺序容器 1,标准库定义了3种类型的顺序容器:vector.list和deque.它们的差别主要在于访问元素的方式,以及添加或删除元素相关操作运算代价.标准库还提供了三种容器适配器:stack.q ... 
- C++ Primer : 第十章 : 泛型算法 之 只读、写和排序算法
		大多数算法都定义在<algorithm>头文件里,而标准库还在头文件<numeric>里定义了一组数值泛型算法,比如accumulate. ● find算法,算法接受一对迭代 ... 
- STL六大组件之——算法小小小小的解析
		参考自侯捷的<stl源码剖析> stl算法主要分为非可变序列算法(指不直接修改其所操作的容器内容的算法),可变序列算法(指可以修改它们所操作的容器内容的算法),排序算法(包括对序列进行排序 ... 
- Chapter10:泛型算法
		泛型算法的基础是迭代器. 迭代器令算法不依赖于容器,但是算法依赖于元素类型的操作.也即:算法永远不会执行容器的操作. 那么,如果想向容器中添加元素或者执行其他的一些操作呢?标准库提供了插入迭代器来完成 ... 
随机推荐
- ofstream 使用的一点主意事项
			有如下代码段: ofstream ofs; while(...) { ofs.close(); ofs.open(...) ofs << "内容"; ... } ofs ... 
- [置顶] CopyU!v2插件合集 [2013年7月18日更新]
			这里提供了所有可供CopyU!v2使用的功能插件,您可以根据自己的需要下载安装使用,需要提醒您的是,安装过多的插件会影响CopyU!的运行性能,请合理的安装使用! 1.打包插件 版本:1.0.12.1 ... 
- Sting和StringBuffer的区别
			java.lang.String代表不可变序列: s1 = "hello"; s2 = "world"; s1 = s1 + s2; 内存分配情况是s1有块内存 ... 
- windows下建立文件的换行符^M导致linux下的shell脚本执行错误的解决方式
			常常在windows下编辑的文件远程传送到linux下的时候每行末尾都会出现^M.这将导致shell脚本执行错误,主要是由于dos下的编辑器和linux下的编辑器对文件末行的回车符处理不一致导致. 主 ... 
- VB.net数据库编程(03):一个SQLserver连接查询的简单样例
			这个样例,因为在ADO.net入门已经专门学了,再次进行复习 一下. 主要掌握连接字串的情况. 过程就是: 1.引用System.Data.SqlClient.而Access中引用 的是System. ... 
- 【剑指offer】树的子结构
			转载请注明出处:http://blog.csdn.net/ns_code/article/details/25907685 剑指offer第18题,九度OJ上測试通过! 题目描写叙述: 输入两颗二叉树 ... 
- asp.net2.0安全性(1)--用户角色篇(代码实现1)--转载来自车老师
			创建用户: MembershipCreateStatus mc; Membership.CreateUser(txtUid.Text, txtPwd.Text, txtEmail.Text, txtQ ... 
- 开源JDBC工具类DbUtils
			本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUti ... 
- Hadoop2.0/YARN深入浅出(Hadoop2.0、Spark、Storm和Tez)
			随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发 ... 
- 基于jquery-easyui的仓库管理系统
			使用jQuery EasyUI创建的仓库管理系统包括系统管理.数据维护.业务单据管理等,有兴趣可以对其进行修改扩展. 数据库采用MYSQL, 帐号/密码:root/root,演示登录帐号/密码:adm ... 
