模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。 模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。 先看类模板: [cpp] view plain copy ...
分类:
其他好文 时间:
2017-03-16 16:15:09
阅读次数:
158
1. STL的空间配置器 SGI STL设计了双层级配置器,第一级配置器直接使用malloc()、free(),第二级配置器则视情况采用不同的策略:当配置区块超过128bytes时,视为“足够大”,便调用第一级配置器;当配置区块小于128bytes时,视为“过小”,为降低额外负担,便采用复杂的mem ...
分类:
其他好文 时间:
2017-03-15 00:20:37
阅读次数:
226
traits基本利用了上一篇文章的思想,通过局部特化,来返回针对特定类型的信息。 可以自己实现traits,约定俗成了,返回特性信息。 也可以利用iterator的traits信息。 iterator就是一个从不同容器内获取各自不同类型迭代器的经典例子。获得特定类型迭代器之后,就可以利用迭代器的tr ...
分类:
其他好文 时间:
2017-03-01 12:48:27
阅读次数:
175
其实一个重要思想就是利用局部特化。注意特化不仅仅可以用类型,还可以用数值。如下: ...
分类:
其他好文 时间:
2017-03-01 12:06:12
阅读次数:
117
模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。 模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。 模版特化:任何针对模版参数进一步进行条件限制设计的特化版 ...
分类:
其他好文 时间:
2017-02-08 14:21:03
阅读次数:
169
同上一篇一样,在jmap -histo中发现MpscChunkedArrayQueue类的实例比较多,javadoc看了下,其原来是出自JC Tools,https://github.com/JCTools/JCTools。 通过官网,我们可以看到,它针对实际的场景对JDK自带的并发队列做了一些特定 ...
分类:
其他好文 时间:
2017-02-05 18:18:00
阅读次数:
2632
对于STL中的依靠比较排序的容器,均提供了一个模板参数来传递比较函数,默认的为std::less<>。 查阅Containers - C++ Reference可以看到典型的使用比较函数的容器有 分别是优先队列、集合、映射,当然multiset和multimap也一样。 这里以优先队列为例,分别给出 ...
分类:
其他好文 时间:
2016-11-26 17:13:56
阅读次数:
403
模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程。对于函数模板而言,模板实例化之后,会生成一个真正的函数。而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始...
分类:
编程语言 时间:
2016-11-20 11:24:59
阅读次数:
260
用例图 1 构成 用例图从用户角度来描述系统功能,描述系统的参与者与系统用例之间的关系。需求分析时使用。 用例图由以下四个组成用例、参与者、系统、关系。 1.1 系统 系统是软件工程的最终结果,用于执行特定功能。用长方框表示,方框内包含了系统中具体用例。 1.2 参与者 参与者是系统外的一个实体,代 ...
分类:
其他好文 时间:
2016-11-16 01:38:54
阅读次数:
120