关于迭代器的基本介绍可以看我之前泛型编程的文章:
STL的中心思想在于:将数据容器(containers)和算法(algorithms)分开,彼此独立设计,最后再以一帖粘合剂将它们撮合在一起。
迭代器(iterator)是一种 smart pointer,关于智能指针可以看我之前的文章(智能指针)。
迭代器是一种行为类似指针的对象,而指针的各种行为中最常见也最重要的便...
分类:
其他好文 时间:
2015-06-19 15:18:36
阅读次数:
150
内存基本处理工具:
STL有五个全局函数,作用于未初始化空间上,它们分别是:construct(), destroy(), uninialized_copy(), uninialized_fill()和uninialized_fill_n()。
前两个函数前面文章有介绍,下面介绍后三个函数。 uninitialized_copy()使我们能够将内存的配置与对象的构造行为分离开来。如果作...
分类:
其他好文 时间:
2015-06-18 11:45:02
阅读次数:
136
STL所有的操作对象(所有的数值)都存放在容器之内,容器需要分配空间以存放数据。为什么不说allocator是内存配置器而是空间配置器,因为空间不仅是内存,空间也可以是磁盘或其它辅助储存媒体。这里我们主要讨论内存配置。
SGI STL每个容器缺省的空间配置器为alloc,如vector: template
clas...
分类:
其他好文 时间:
2015-06-18 09:47:39
阅读次数:
124
ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。
ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val...
分类:
其他好文 时间:
2015-06-09 17:27:31
阅读次数:
98
语言经典书:C:C程序设计语言(K&R)->C和指针->C专家编程->C陷阱与缺陷->你必须知道的495个C语言问题C++: C++ primer ->effective C++->深度探索C++对象模型->stl源码分析->C++必知必会java:java编程思想->java并发编程->深入理解J...
分类:
其他好文 时间:
2015-06-07 09:28:05
阅读次数:
125
过年在家无事看了《STL源码剖析》,开学了将看过的东西总结一下,以防忘记。 先从STL的内存管理开始总结。掌管STL内存控制的是一个叫空间适配器(alloc)的东西。STL有两个空间适配器,SGI标准空间适配器(allocate)和SGI特殊的空间适配器(alloc),前者只是对c++的new...
分类:
其他好文 时间:
2015-05-30 17:51:38
阅读次数:
100
#include
#include
#include
#include
using namespace std;
int main(int argc, char **argv)
{
int iArray[5] = {1, 2, 3, 4, 5};
vector iVect(iArray, iArray+5);
cout << accumulate(iVect.begi...
分类:
其他好文 时间:
2015-05-14 22:02:03
阅读次数:
122
说明:我认为要读懂STL中allocator部分的源码,并汲取它的思想,至少以下几点知识你要了解:operator new和operator delete、handler函数以及一点模板知识。否则,下面你很可能看不大明白,补充点知识再学习STL源码比较好。下面会结合关键源码分析C++STL(SGI版...
分类:
编程语言 时间:
2015-04-28 17:34:00
阅读次数:
199
《STL源码剖析》的5.7.7 hash function一节中介绍了中定义了数个现成的hash函数,全都是仿函数。这些hash函数支持的模板类型包括:char*, const char*, char, unsigned char, signed char, short, unsigned short, int , unsigned int, long, unsigned long。这些不同类型的...
分类:
其他好文 时间:
2015-04-26 12:28:03
阅读次数:
148
由于之前在debug模式下发现stl的sort简直慢到不能忍,所以自己写了一个sgi的sort,后来发现在release模式下,vs自带的sort快的不行,就研究了下。
这里有些和sgi-stl相通的东西就简略带过了,详细内容可以看我之前的stl源码的笔记:
sgi-sort_link
首先来看下大概的过程: 1.没有调用到一定深度时,就进行划分并进行递归调用。
2.如果超过了一定深度...
分类:
其他好文 时间:
2015-04-24 09:07:00
阅读次数:
129