随笔 - 43  文章 - 39  trackbacks - 0
<2017年10月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(2)

随笔分类

随笔档案

友情链接

搜索

  •  

最新评论

阅读排行榜

评论排行榜

《The Pragmatic Programmer》 From Journeyman to Master
《务实的程序员》 从工人到大师

或《程序员修炼之道》 从小工到专家

作者:   【美】 Andrew Hunt   David Thomas
出版社:  Addison Wesley

第一版 1999年10月13日

务实的程序员通过现代软件开发中日益增长的的规范和技术细节来检查核心过程--根据需求来创建用户可工作和乐于维护的代码。本书包含了个人责任到职业发展到用架构技术来保持你的代码灵活,易于修改和重用。阅读本书,你将会学到

为软件变质做斗争;

避免重复知识陷阱;

编写灵活,动态,和易适应的代码;

避免靠巧合编程;

用合约,断言,和异常来保护你的代码;

捕捉真实的需求;

严格并且有效地进行测试;

让你的用户开心;

组建务实程序员团队;和

用自动化使开发过程更精确。


本书由一系列独立的章节组成,其间充满了有趣的轶事,周到的例子,和有趣的模拟,《务实的程序员》描述了软件开发的许多不同方面的最佳实践和主要问题。不管你是新手,还是有经验的程序员,或者是对软件项目有责任的经理,通过每日学习这些课程,都将会在个人生产力,准确性和工作满意度快速提升。你将会学到技能和开发习惯和态度为你的职业生涯中取得长期成功奠定基础。你将会成为一个务实的程序员。

 
posted @ 2012-04-17 10:26 canaan 阅读(1418) | 评论 (0)编辑 收藏
CColorDialog Class 颜色对话框类

VS2008

允许你将颜色选择对话框加入到你的应用程序中。


class CColorDialog : public CCommonDialog


备注

CColorDialog对象是一个具有一列定义在显示系统中的颜色的对话框。用户可以从列中选择或者创建特定的颜色,在对话框退出时报告返回给应用程序。

使用提供的构造函数或派生一个新类然后使用你自己的构造函数,来构建一个CColorDialog对象。

一旦对话框创建完成,你可以设置或修改m_cc结构中的任何值来初始化对话框控件的值。该m_cc结构类型是CHOOSECOLOR. 。

初始化对话框控件后,调用DoModal成员函数来显示对话框,并允许用户选择一种颜色。DoModal返回用户的选择对话框的OK(IDOK)或者Cancel(IDCANCEL)按钮。

如果DoModal返回IDOK,你可以使用CColorDialog方法来找回由用户输入的信息。

你可以使用Windows CommDlgExtendedError函数来决定不管错误发生在对话框初始化过程中并了解更多有关的错误。

CColorDialog依赖COMMDLG.DLL文件映射Windows版本3.1更高版本。

从CColorDialog派生一个类,自定义对话框。提供自定义对话框模板,并添加消息映射来处理从扩展控件来的通知消息。任何未处理的消息应该传递给基类。

笔记:
如果你使用框架使其他对话框对象变成灰色,在某些CColorDialog安装对象将不显示一个灰色背景。

使用CColorDialog需要更多的信息,参见Common Dialog Classes

需求
头文件:afxdlgs.h

只能设备开发笔记

这个类只支持Windows CE标准SDK。它不支持Windows Mobile Pocket PC或者智能手机平台。智能设备版本CColorDialog类不支持下面方法:
CColorDialog::SetCurrentColor


参见
概念
posted @ 2012-04-05 19:17 canaan 阅读(1762) | 评论 (0)编辑 收藏
随机访问容器

容器
类目:容器

描述
随机访问容器是一个迭代器类型为随机访问迭代器的可逆容器。它提供常量缓冲时间来访问随机元素。

改善自

可逆容器

相关类型

除了定义在可逆容器中的类型,没有其他额外类型。尽管这个迭代器类型的需求加强了:必须是随机访问迭代器。

标记法

X 随机访问容器模型类型
a,b X类型对象
T X类型的值

定义

有效表达式

除了定义在可逆容器中的表达式外,下面的表达式也必须有效。
名称                         表达式    类型需求                                返回类型
Element access(访问元素)   a[n]      n可以转换成size_type                    如果可变,那么是引用,否则为常量引用

表达式语义

一个表达式的语义只在这个情况下定义,当他在可逆容器中没有定义,或者有额外的信息。
名称                         表达式  前提              语义                   后置
Element access(访问元素)     a[n]    0<=n<a.size()     返回容器的第n个元素

复杂度保证

访问元素的运行时复杂度为缓冲常量时间。

不变量

Element access(访问元素) a[n]返回的元素与增加a.begin()n次得到的结果迭代器解引用是一样的。

模型

vector
deque

注释

参见

Iterator overview,随机访问迭代器,Sequence
posted @ 2012-03-31 13:52 canaan 阅读(1359) | 评论 (0)编辑 收藏
     摘要: 如何设置MFC状态栏?如何在状态栏添加图片?怎样修改状态栏字体颜色?状态栏编程,如何使用状态栏?  阅读全文
posted @ 2012-03-30 22:43 canaan 阅读(2502) | 评论 (0)编辑 收藏

CBitmapButton 类


创建位图图像替代文本标记的按钮控件。


Class CBitmapButton : public CButton


备注


CBitmapButton 对象包含多达四个位图,为按钮的不同状态包含图像:up(or normal),down(or selected),focused,和disabled
。只有第一个位图是必须的;其他都是可以选择的。

位图按钮(Bitmap-button)图像包括图像的边框以及图像本身。边框通常扮演部分显示按钮的状态。例如,focused状态下的位图通

常和up状态下的一样,但是它的边框是矩形虚线或者粗实线。disabled状态下的位图通常类似于up状态但是对比度较低(如暗灰色

或者灰色菜单选择)。

这些位图可以是任意大小,但是对于up状态它们都被视为同样大小。

各种应用要求位图图像的不同组合:

Up Down Focused Disabled 应用
*                                     位图
*   *                                没有WS_TABSTOP样式的按钮
*   *        *           *          带有所有状态的对话框按钮
*   *        *                      带有WS_TABSTOP样式的对话框按钮

当创建一个位图按钮控件,设置BS_OWNERDRAW样式指定按钮为自己绘制的。这使Windows为按钮发送WM_MEASUREITEMWMDRAWITEM

消息。框架为你处理这些消息和管理按钮的外观。

 

在windows客户区域创建位图按钮控件
   1、为按钮创建一到四个位图。
   2、构建CBitmapButton对象。
   3、调用Create函数创建按钮控件,然后附加到CBitmapButton对象上。
   4、当位图按钮构造好后,调用LoadBitmaps成员函数来加载位图资源。

一个对话框中包括一个位图按钮
   1、为按钮创建一到四个位图。
   2、创建一个带有自绘(owner-draw)按钮的对话框模板,按钮放置在你想要的位图按钮的地方。
   3、设置按钮的caption为"MYIMAGE",按钮定义符号为IDC_MYIMAGE
   4、在你应用程序的资源脚本中,在步骤3中为每个为按钮创建的图形设置标题为ID加一个字母,"U","D","F",或者"X"(对应于up,down,focused,和disabled)的字符串。例如,像标题为"MYIMAGE"的按钮,它们的ID为"MYIMAGEU","MYIMAGED","MYIMAGEF",和"MYIMAGEX."你必须指定位图的ID要有双引号。否则资源编译器将制定一个整数的资源,那么MFC在加载图片时就会失败。
   5、在你的应用程序的对话框类(继承自CDialog)中,增加一个CBitmapButton成员对象。
   6、在CDialog对象的OnInitDialog例程中,调用CBitmapButton对象的AutoLoad函数,按钮控件的ID和CDialog对象的指针作为参数。

如果你想处理窗口信息,像BN_CLICKED,位图按钮控件发送给它的父(通常是一个从CDialog派生的类),为CDialog派生对象增加一个消息映射入口,和每个消息处理成员函数。CBitmapButton对象发送的通知跟CButton是一样的。

类CToolBar对位图按钮采用不同的方法。

更多关于CBitmapButton的信息,参考Controls。

要求

头文件:afxext.h

参考

CTLRLTEST sample:Implements Custom Controls
CBitmapButton Members
CButton Class
Hierarchy Chart


原文:

http://msdn.microsoft.com/zh-cn/library/a3y45xs0(v=vs.90).aspx
 

posted @ 2012-03-22 10:36 canaan 阅读(1320) | 评论 (0)编辑 收藏
可逆容器(Reversible Container)

类目:容器


描述

可逆容器是一个有双向迭代器的前向容器。它可以向后向后迭代通过容器。

改善自

Forward Container

相关类型

介绍了两个新的类型。此外,迭代器类型和常量迭代器类型必须满足比前向容器(Forward Container)更严格的要求。迭代器类型和反向迭代器类型必须是双向迭代器(Bidirectional Iterators),而不仅仅是前向迭代器(ForWard Iterators)。

反向迭代器类型(Reverse iterator type)            X::reverse_iterator    一个反向迭代器适配器的基迭代器类型是容器的迭代器类型。递增反向迭代器(rever_iterator)类型对象向后移动通过容器:Reverse Iterator适配器映射了++操作符和--操作符。
常量反向迭代器类型(Const reverse iterator type)  X::const_reverse_iterator  一个反向迭代器适配器的基迭代器是容器的常量迭代器类型。[1]

标记法

X    反向容器模式类型
a,b  类型X对象

定义

有效表达式

除了前向容器(Forward Container)中的表达式外,下面的表达式也必须有效
名称                      表达式     类型要求   返回类型
范围起始Beginning of range a.rbegin()           如果a是可变的,那么是reverse_iterator,否则为const_reverse_iterator[1]
范围结束End of range       a.rend()             如果a是可变的,那么是reverse_iterator,否则为const_reverse_iterator[1]

表达式语义

一个表达式的语义只有在这种情况下定义,当它没有在前向容器(Forward Container)中定义,或者有额外的信息。
名称                      表达式 前提     语义                                后置
逆向范围起始Beginning of range a.rbegin()    相当于X::reverse_iterator(a.end())。 a.rbegin()是提领或者是past-the-end。当a.size() == 0是,它为past-the-end。
逆向范围结束End of reverse range a.rend()    相当于X::reverse_iterator(a.begin())。 a.rend()是past-the-end。

复杂性保证

rbegin()和rend()运行时复杂性是摊销时间为常数。

不变因素

有效范围          [a.rbegin(), a.rend())是一个有效范围。
等待范围          a.begin()到a.end()之间的距离和a.rbegin()到a.rend()之间的距离是一样的。

模型

vector
list
deque

注释

[1]一个容器的迭代器类型和常量迭代器类型有可能是相同的类型:一个容器不需要提供可变的迭代器。因此反向迭代器类型和常量反向迭代器类型也可能是相同的。

参见

Iterator overview, Bidirectional Iterator, Sequence

           
posted @ 2012-03-21 16:07 canaan 阅读(1024) | 评论 (1)编辑 收藏
前向容器(Forward Container)

容器
类目:容器

描述

前向容器中的元素是按一定的顺序排序的:这个顺序不会因为迭代而自动改变。一定的顺序要求允许定义相等的元素(如果容器中的元素是可以比较相等的Equality Comparable)和字典序(如果容器中的元素类型是可以比较小于的 LessThen Comparable)。

前向容器中的迭代器满足前向迭代器的要求:因此,前向容器支持多通道算法,并允许同一个容器可以同时拥有多个激活的迭代器。

完善(Refinement of)

Container,EqualityComparable,LessThanComparable

相关类型

除了容器总定义的,没有其他额外的类型。然而,迭代器类型的要求加强:迭代器类型必须是前向迭代器模式。

标记法

X 是一个前向容器模式的类型
a,b 类型X的对象
T 类型X的值

定义

有效表达式

除了容器中定义的表达式外,EqualityComparable,和LessThanComparable,下面的表达式必须是有效的。
名字                        表达式        类型要求                返回类型
等式(Equality)              a == b        T是EqualityComparable   可转换成bool
不等式(Inequality)          a != b        T是EqualityComparable   可转换成bool
小于(Less)                  a < b         T是LessThanComparable   可转换成bool
大于(Greater)               a > b         T是LessThanComparable   可转换成bool
小于或等于(Less or equal)   a <= b        T是LessThanComparable   可转换成bool
大于或等于(Greater or equal)a >= b        T是LessThanComparable   可转换成bool

表达式语义

一个表达式的语义只有在这种情况下定义,当它没有定义在Container, EqualityComparable, 或者LessThanComparable,或者有额外的信息。
名字                 表达式         前提  语义                                                                         后置
等式(Equality)       a == b               如果a.size() == b.size()而且a中的每个元素都等于b中的对应的元素,那么返回true。否则返回false。
小于(Less)           a < b                相当于lexicographical_compare(a,b)

复杂性担保

等式和不等式的操作与容器的大小呈线性关系。

不变

顺序 两个不同的迭代器迭代一个前向容器的,都是以同样的顺序访问它的元素,提供一个没有干预性的操作。

模型

vector
list
slist
deque
set
hash_set
map
hash_map
multiset
hash_multiset
multimap
hash_multimap

注释

参见

iterator overview, Forward Iterator, Sequence
posted @ 2012-03-19 12:10 canaan 阅读(1020) | 评论 (0)编辑 收藏

容器


类目:容器

描述


容器是一个可以存储对象(它的元素),并具有访问其元素的方法的一个对象。特别是,每一个容器模式类型都有一个关联的迭代器类型来遍历容器中的元素。

不能保证容器中的元素按特定的方式来存储;事实上,不同的是每次迭代器是如何通过容器的。也不能保证容器的多个迭代器是一直有效的。(特定的容器类型,像前向容器是提供这样的保证的。)

容器“拥有”它的元素:存储在一个容器中的元素的寿命不能超过容器本身。[1]

完善


Assignable

相关类型

(Value type)值类型  X::value_type  存储在容器中的对象类型。值类型必须是Assignable,但不必是DefaultConstructible.[2]
(Iterator type)迭代器类型 X::iterator  迭代器类型用来遍历容器的元素。迭代器的值类型就是容器的值类型。必须可以从iterator type转换成const iterator type。迭代器的类型必须是一个输入迭代器。[3]
(Const iterator type)常量迭代器类型 X::const_iterator 是一个可以查看但不能修改容器中元素的迭代器类型。[3][4]
(Reference type)引用类型 X::reference 是一个行为像容器值类型引用的类型。[5]
(Const reference type)常量引用类型 X::const_reference 是一个行为像容器值类型常量引用的类型。[5]
(Pointer type)指针类型 X::pointer 是一个行为像容器值类型指针的类型。[6]
(Distance type)距离类型 X::distance_type  一个有符号整数类型来表示两个容器迭代器之间的距离。此类型必须跟迭代器之间的距离类型是一样的。[2]
(Size type)大小类型 X::size_type 一个无符号整数类型来表示任何非负值的容器距离类型。[2]

标记法


X    容器模式对象
a,b  X类型对象
T    X类型的值

定义


容器的(size)大小就是它所包含的元素个数,它是一个非负数。

容器的(area)面积就是它占用的字节数。更确切地说,它是元素的面积的总和加上与容器本身相关的任何开销。如果容器的值类型T是一个简单的类型(而不是一个容器类型),那么这个容器的面积就是sizeof(T)的常数倍。也就是说,一个简单值类型的容器a的面积是O(a.size())。

一个(variable sized)可变大小的容器提供插入和/或移除元素的方法;容器大小可能会变化。一个(fixed size)固定大小的容器,它的大小在它的生命周期内是一只不变的。一些固定大小的容器类型,大小在编译时确定。

有效表达式


除了Assignable,EqualityComparable,和LessThanComparable这些已经定义的表达式,下面的表达式也必须是有效的。

名称      表达式         类型要求    返回类型
范围起始  a.begin()                  如果是可变的,返回值为iterator(迭代器),否则为const_iterator[4][7]
范围结束  a.end()                    如果是可变的,返回值为iterator(迭代器),否则为const_iterator[4]
大小      a.size()                   size_type
最大容量  a.max_size()               size_type
空容器    a.empty()                  可转换成bool类型
交换      a.swap(b)                  void

表达式语义


名称          表达式       前提    语义                                                         后置
拷贝构造函数  X(a)                                                                              X().size() == a.size()。X()包含了a中所有元素的副本。
拷贝构造函数  X b(a)                                                                            b().size() == a.size()。b包含了a中所有元素的副本。
赋值运算符    b = a                                                                             b().size() == a.size()。b包含了a中所有元素的副本。
析构函数      a.~X()               销毁a中所有的元素,并释放为它们分配的内存(如果有的话)。
范围起始      a.begin()            返回一个指向容器第一个元素的迭代器(iterator)。[7]            a.begin()要么是提领要么是past-the-end。仅仅当a.size == 0的时候它才是past-the-end。
范围结束      a.end()              返回一个指向容器的最后一个元素的后面的迭代器(iterator)。     a.end 是 past-the-end。
大小          a.size()             返回容器的大小,也就是元素的个数。[8]                        a.size() >= 0 && a.size <= a.max_size()
最大容量      a.max_size()         返回容器的最大容量。[8]                                      a.max_size() >= 0 && a.max_size >= a.size()
空容器        a.empty()            相当于 a.size() == 0 (但是可能更快)                        
交换          a.swap(b)            相当于swap(a,b)[9]

复杂性担保

拷贝构造函数,复制操作符,析构函数跟容器大小呈线性关系。

begin()和end()的摊销时间为常数。

size()跟容器大小呈线性关系。[10] max_size()和empty()的摊销时间为常数。如果你要测试一个容器是否为空,你应该总是写c.empty而不是c.size() == 0。这两个表达式是等价的,但前者可能要快得多。

swap()的摊销时间为常数。[9]

不变量


有效范围     任何容器a, [a.begin(), a.end())是一个有效范围。[11]
范围大小     a.size()等于从a.begin()到a.end()的距离。
完整性       一个迭代算法[a.begin(), a.end()),将会遍历a中的每个元素。[11]

模型


vector

注释


[1]元素的寿命不能超过其容器可能看起来像一个严重的限制,事实上,它并不是限制。请注意指针和迭代器都是对象;就像任何其他对象一样,他们可以被存储在一个容器内。在这种情况下,容器拥有指针本身,而不是它们指向的对象。

[2]这种表达式必须是一个typedef,这是一个类型的代名词。

[3]这可能是一个typedef或者其他类型,或者一个定义嵌套类作为一个内部类的X的特定的类型。

[4]容器的iterator类型和const iterator类型可能是一样的:不能保证每个容器必须有一个相关的可变迭代器类型。例如,set和hash_set定义iterator和const iterator为同一类型。

[5]引用类型需要与普通C++引用类型有相同的语义,但它实际上并不是普通的C++引用。例如,在某些实现中,可能会提供额外的引用类型来支持非标准的内存模型。但是请注意,“智能引用”(用户定义的引用类型提供额外的功能)不是一个可行的选择。用户定义的类型不可能与C++引用类型具有相同语义,因为C++语言不支持重新定义的成员访问运算符(operator.)。

[6]跟[5]中的引用类型一样,指针类型需要与C++指针有相同的语义,但实际并不是C++指针。“智能指针”不同于“智能引用”是有可能的。因为可以为用户定义类型来定义的引用操作符和指针成员访问运算符可以访问运算符*和->。

[7]迭代器类型(iterator type)必须是一个输入迭代器(input iterator),它只提供了一个非常薄弱的担保;特别是,输入迭代算法必须都是“单通道”。容器只有一个简单的迭代器(iterator)可以随时激活。Forward Container(前向容器)没有这个限制。

[8]一个固定大小的容器,size() == max_size()。

[9]对于任何Assignable类型,swap可以定义分配条款。这需要三个任务,每一个容器类型,容器的大小呈线性关系。然而,在某种意义上,a.swap(b)是多余的。它的存在仅仅为了提高效率:许多容器,如vector和list,它实现swap的时间复杂度是不变的,而不是线性的。一些容器类型X,那么它们的模板化swap(X&,X&)可以简单地写在X::swap(X&)。也就是说X::swap(X&)只能定义在执行时间是常量的情况下。不是所有的容器类X都需要这样的一个成员函数,但是如果这样的函数存在,那么必须保证摊销时间为常量。

[10]对于许多容器,如vector和deque,size是O(1).这满足了O(N)的要求。

[11]虽然[a.begin(), a.end())必须是一个有效的范围,而且每个元素必须都包含在容器内,但是在这个范围内出现的顺序是不确定的。如果你两次遍历一个容器,它不能保证这两次的遍历顺序是相同的。Forward Container前向容器没有这个限制。

参见


迭代器概述,输入迭代器,序列
posted @ 2012-03-13 13:20 canaan 阅读(1441) | 评论 (0)编辑 收藏
6、函数对象
    1、简介
    2、概念
         1、generator(不需要参数的函数)
         2、一元函数
         3、二元函数
     4、Adaptable Generator(可适应的不需要参数的函数)
     5、一元可适应函数
     6、二元可适应函数
     7、谓词
          1、谓词
          2、二元谓词
          3、可适应谓词
          4、二元可适应谓词
          5、StrictWeakOrdering
     8、Monoid曹错
     9、随机数生成器
    3、预定义函数对象
         1、算术运算
          1、加法
              2、减法
          3、乘法(原名“次”)
          4、除法
          5、取模运算
          6、否定
     2、比较算法
          1、equal_to
          2、not_equal_to
          3、less
          4、greater
          5、less_equal
          6、greater_equal
     3、逻辑操作
          1、logical_and(逻辑与)
          2、logical_or(逻辑或)
          3、logical_not(逻辑否)
     4、广义身份认证操作
          1、identity
          2、project1st
          3、project2nd
          4、select1st
          5、select2nd
     5、subtractive_rng
    4、函数对象适配器
         1、binder1st
     2、binder2nd
     3、ptr_fun
     4、pointer_to_unary_function
     5、pointer_to_binary_function
     6、unary_negate
     7、binary_negate
     8、unary_compose
     9、binary_compose
     10、成员函数适配器
          1、mem_fun
          2、mem_fun_ref
          3、mem_fun1
          4、mem_fun1_ref
7、Utilities
    1、概念
    1、Assignable
    2、Default Constructible
    3、Equality Comparable
    4、LessThan Comparable
    2、函数
        1、关系操作符
    3、类
        1、pair
8、内存分配
    1、类
        1、分配器
    2、raw_storage_iterator
    2、函数
        1、construct
    2、destroy
    3、uninitialized_copy
    4、uninitialized_copy_n
    5、uninitialized_fill
    6、uninitialized_fill_n
    7、temporary_buffer
    8、get_temporary_buffer
    9、return_temporary_buffer
9、设计文档
    1、线程安全
    2、复杂规格的意义
    3、字符串的表示
10、分类索引
11、全文索引
posted @ 2012-03-12 15:27 canaan 阅读(117) | 评论 (0)编辑 收藏
4、迭代器
   1、简介
   2、概念
        1、普通迭代器
        2、输入迭代器
        3、输出迭代器
        4、前向迭代器
        5、双向迭代器
        6、随机访问迭代
    3、迭代器标签
        1、简介
        2、iterator_traits
        3、iterator_category
        4、distance_type
        5、value_type
        6、迭代器标签类
              1、input_iterator_tag
              2、output_iterator_tag
              3、forward_iterator_tag
              4、bidirectional_iterator_tag
              5、random_access_iterator_tag
        7、迭代器基础类
              1、input_iterator
              2、output_iterator
              3、forward_iterator
              4、bidirectional_iterator
              5、random_access_iterator
    4、迭代函数
         1、distance
         2、advance
    5、迭代器类
         1、istream_iterator
         2、ostream_iterator
         3、front_insert_iterator
         4、back_insert_iterator
         5、insert_iterator
         6、reverse_iterator
         7、reverse_bidirectional_iterator
         8、raw_storage_iterator
         9、sequence_buffer
5、算法
    1、不会改变内容的算法
         1、for_each
         2、find
         3、find_if
         4、adjacent_find
         5、find_fist_of
         6、count
         7、count_if
         8、mismatch
         9、equal
        10、search
        11、search_if
        12、find_end
    2、会改变内容的算法
         1、copy
         2、copy_n
         3、copy_backward
         4、交换
              1、swap
              2、iter_swap
              3、swap_ranges
         5、transform
         6、替换
              1、replace
              2、replace_if
              3、replace_copy
              4、replace_copy_if
         7、fill
         8、fill_n
         9、generate
        10、generate_n
        11、移除
               1、remove
               2、remove_if
               3、remove_copy
               4、remove_copy_if
        12、unique
    13、unique_copy
    14、reverse
    15、reverse_copy
    16、rotate
    17、rotate_copy
    18、random_shuffle
    19、random_sample
    20、random_sample_n
    21、partition
    22、stable_partition
    3、排序
         1、排序
          1、sort
          2、stable_sort
          3、partial_sort
          4、partial_sort_copy
          5、is_sorted
     2、nth_element
     3、二进制搜索
          1、lower_bound
          2、upper_bound
          3、equal_range
          4、binary_search
     4、merge
     5、inplace_merge
     6、排序范围内设置操作
          1、includes
          2、set_union
          3、set_intersection
          4、set_difference
          5、set_symmetric_difference
     7、堆操作
          1、push_heap
          2、pop_heap
          3、make_heap
          4、sort_heap
          5、is_heap
     8、最大值和最小值
          1、min
          2、max
          3、min_element
          4、max_element
     9、lexicographical_compare
    10、lexicographical_compare_3way
    11、next_permutation
    12、prev_permutation
    4、广义数值算法
         1、iota
     2、accumulate
     3、inner_product
     4、partial_sum
     5、adjacent_difference
     7、power

下一节 《标准模板库 目录三 函数对象、Utilities、内存分配
        
posted @ 2012-03-09 09:41 canaan 阅读(962) | 评论 (0)编辑 收藏
仅列出标题
共5页: 1 2 3 4 5