Vector
1、内部数据结构:连续存储,例如数组。
2、随机访问每个元素,所需要的时间为常量。
3、在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。
4、可动态增加或减少元素,内存管理自动完成,但程序员可以使用reserve()成员函数来管理内存。
5、迭代器失效
插入:vector的迭代器在内存重新分配时将失效(它所指向的元素在该...
分类:
其他好文 时间:
2014-08-27 23:33:38
阅读次数:
403
相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。
list不仅是一个双向链表,而且还是一个环状双向链表。另外,还有一个重要性质,插入操作和接合操作都不会造成原有的list迭代器失效,这在vecto...
分类:
其他好文 时间:
2014-08-27 20:34:28
阅读次数:
384
1.为什么要出现?
按照默认认定,一个模板给出了一个单一的定义,可以用于用户可以想到的任何模板参数!但是对于写模板的人而言,这种方式并不灵活,特别是遇到模板参数为指针时,若想实现与类型的参量不一样的实例化,就变得不太可能了!也有时,想禁止此种相同的实例化变得不太可能!故而出现了,Partial Specialization!
同时,在使用void*指针时,可以最大限度的共享代码,减少代码的膨胀...
分类:
其他好文 时间:
2014-08-27 10:58:27
阅读次数:
279
一、SGI STL配置器简介
SGI STL的配置器与众不同,它与标准规范不同。如果要在程序中明确使用SGI配置器,那么应该这样写:
[cpp]
view plaincopyprint?
vectorint,std::alloc> iv;
他的名字是alloc,而且不接受任何参数。标准配置器的名字是allocator,而且可以接受参数。
SGI S...
分类:
其他好文 时间:
2014-08-26 11:49:26
阅读次数:
243
本文讲解SGI STL空间配置器的第二级配置器。
相比第一级配置器,第二级配置器多了一些机制,避免小额区块造成内存的碎片。不仅仅是碎片的问题,配置时的额外负担也是一个大问题。因为区块越小,额外负担所占的比例就越大。
额外负担是指动态分配内存块的时候,位于其头部的额外信息,包括记录内存块大小的信息以及内存保护区(判断是否越界)。要想了解详细信息,请参考MSVC或者其他malloc实现。...
分类:
其他好文 时间:
2014-08-26 11:49:16
阅读次数:
201
好久没动手写一点C++程序了,以后没事多模仿STL吧,虽然达不到标准的STL的程序,但简单的功能还是要实现的。STL确实博大精深:泛型编程、容器、算法、适配器...有的是内容可以学。下面是根据STL源码,写的一个非常简单的vector,实现了部分接口。其实vector还是相对很简单的容器了,元素按在内存中连续排列,只需要三个指针就能实现很多的接口。还有一个就是内存的分配,这里采用了一个C++提供的...
分类:
编程语言 时间:
2014-08-25 19:16:44
阅读次数:
286
本文主要分析g++ stl中哈希表的实现方法。stl中,除了以红黑树为底层存储结构的map和set,还有用哈希表实现的hash_map和hash_set。map和set的查询时间是对数级的,而hash_map和hash_set更快,可以达到常数级,不过哈希表需要更多内存空间,属于以空间换时间的用法,...
分类:
其他好文 时间:
2014-08-21 22:44:34
阅读次数:
387
仿函数是行为类似函数的类或结构体,类或结构体重载了operator(),它比函数指针更加灵活易用。...
分类:
其他好文 时间:
2014-08-19 16:43:15
阅读次数:
245
STL标准中没有区分基本算法或复杂算法,单SGI把常用的一些算法定义在只中。在这些算法中,比较值得学习的是copy函数,它“无所不用其极”的改善效率。...
分类:
其他好文 时间:
2014-08-19 10:56:14
阅读次数:
320
SGI STL中的map底层以红黑树实现,hash_map以hash table实现。
hash_map不允许插入重新键值,hash_multimap允许插入重复键值。这两者的关系就像map和multimap的关系。底层的hash table提供的大部分的操作,hash_map(hash_multimap)大部分都是直接调用hash table的函数。...
分类:
其他好文 时间:
2014-08-18 18:45:49
阅读次数:
363