C++
文章平均质量分 75
ww32cc
这个作者很懒,什么都没留下…
展开
-
STL自定义仿函数和组合型函数适配器
1.自定义仿函数STL提供了算术类、相对关系类、逻辑运算类的预定义仿函数,但为了满足程序的需要,大多数情况下需要我们自己定义仿函数。如果希望它们能够和函数适配器搭配使用,就必须满足某种条件:必须提供一些类型成员来反映其参数和返回值的类别。STL提供了以下两种结构:原创 2015-07-25 17:49:11 · 621 阅读 · 0 评论 -
C++前缀自增/后缀自增及重载
1.内置类型前缀式返回变量自增或自减之后的值,后缀式对变量进行增、减,但返回变量原来的值。前缀自增生成左值,而后缀自增操作生成右值左值:一定应着一个地址,非const左值可读可写,占用一块内存。可以出现在赋值操作左边的值。右值:可用于赋值操作的右边但不能用于左边的值,只可读不可写,可能为const,可能不占据内存,只是一个中间计算结果#include原创 2015-07-15 16:24:41 · 2828 阅读 · 1 评论 -
C++中的临时对象temporary object
Thinking in C++ P368页关于Temporaries的论述中写道:But there is one thing about temporaries:they’re automatically const. Because you usually won’t be able to get your hands on a temporary object,telling it to原创 2015-11-30 17:14:09 · 1856 阅读 · 0 评论 -
C++常量折叠
编译阶段遇到对const常量的引用时,编译器直接查找符号表,用符号表中的值进行替换。而为了让别的单元对这个常量进行引用,必须提供这个常量的地址,所以要分配内存。由于提供了地址,出于对const常量的保护,即使指向该地址的指针改变了该内存单元的值,const常量的值不变(遇到对该变量的引用,用符号表值替换)。所以在运行阶段,const常量所在地址的内存内容可以发生改变,而const常量的值始终保持不原创 2015-11-30 20:12:58 · 412 阅读 · 0 评论 -
谓词函数predicates和仿函数functors
谓词函数是一个判断式,一个返回bool值的函数或者仿函数。C++ standard library P264:并非所有返回布尔值的仿函数都是合法的谓词函数。因为使用两个相同的参数调用一个一元谓词函数,应该总是返回相同的结果(与调用次数无关)。敲代码的时候犯了一个小错误,写仿函数的operator()时,由于操作符中并未使用额外的参数,所以函数定义时默认成了不传参,结果编译错误。原创 2015-07-21 16:41:43 · 690 阅读 · 2 评论 -
C++返回值优化
当函数需要返回对象时,通常有两种写法,一种是直接在return语句中返回一个对象,一种是先构造好一个对象,然后在return中将其返回。以下代码为例:#include #include using namespace std;struct Node{ string name; int x, y; Node(string na = "", int xx = 0, int yy =原创 2015-11-30 16:19:09 · 1250 阅读 · 0 评论