代码改变世界

C++ Standard Stl -- SGI STL源码学习笔记(05) stl_vector 与 一些问题的细化 1

2012-07-29 08:47 by respawn, 1711 阅读, 0 推荐, 收藏, 编辑
摘要:上篇文章中很粗略的角度讲解了一下stl_deque的设计思想,以及涉及到得浅显的STL内存管理方面,至少我们看得到的冰山一角. 这篇文章中关于vector的分析,我将将一些问题细化一下,对一些函数做细致的分析.有些时候,有些问题还是说清楚比较好. 打开stl_vector的源码,发现vector的设计思路和stl_deque如出一辙,想想这样是很合理的,保持实现的一致性.只是stl_vector没有提供一个确定的模板类Iterator去实现迭代器,而是在vector模板类中实现了迭代. 但是和deque基本没有什么大的不同.下面来看看源码: 1. 这次就不讲解设计部分了,主要讲解... 阅读全文

C++ Standard Stl -- SGI STL源码学习笔记(04) stl_deque && 初涉STL内存管理

2012-07-28 15:07 by respawn, 1751 阅读, 1 推荐, 收藏, 编辑
摘要:在SGI STL源码中,很多时候一些模板类提供默认形参的时候,都会选择提供deque.template ) > // stl_stack.h template ) > // stl_queue.h _STL_DEPENDENT_DEFAULT_TMPL宏就是替换后扩展为"=deque".既然出场的频率那么高,所以我首先选择他.一起去看看deque的源码.deque的源码很多,一千六百多行的代码. 而且实现也是蛮复杂的.包括deque_iterator,deque_allocator,deque_base,deque.如果你也在阅读deque的源码,我的建议是先从 阅读全文

C++ Standard Stl -- SGI STL源码学习笔记(03) STL中的模板编译期检查与偏特化编译期检查

2012-07-27 10:13 by respawn, 1662 阅读, 0 推荐, 收藏, 编辑
摘要:前一篇文章中说了SGI STL中的Concepts Check,其实就是利用模板类类实例化在编译期会执行检查的特性. SGI STL大量运用了Concepts Check,前面已经说过,这里不再多说.在>中在"模板与泛型编程"章节中有讲解模板的特化,不再赘述. 模板特化分为两种: 1. 绝对特化 2. 部分特化在这片博文中,主要来看一下部分特化.依旧是选用stl_stack.h源码.template ) >宏__STL_DEPENDENT_DEFAULT_TMPL只是简单的用来实现默认模板参数的指定:# define __STL_DEPENDENT_DEFAU. 阅读全文

C++ Standard Stl -- SGI STL源码学习笔记(02) Concepts Check

2012-07-25 17:28 by respawn, 1802 阅读, 0 推荐, 收藏, 编辑
摘要:希望很多同学不是因为看到标题,出于好奇心才进来的. 以前我驻扎在CSDN一段时间,但是后来搬到了博客园. 博客园同CSDN比起来,感觉好很多,自己也不知道是什么原因. 可能是CSDN现在很多所谓的技术专家都开始转行写小说了,俺不喜欢看小说,喜欢搞技术,所以就到了博客园. 标题上写着是介绍STL中的Concepts Check,可以说是一种机制. 今天我也是在阅读SGI STL源码的过程中遇到这个问题,问了很多人,也查阅了很多资料.但是很多人表示对此毫不知情~ 下午又去图书馆找资料,最后也只是找到一本>,粗略的浏览了一下相关章节,有点吃力,原因是它的线索是前后贯穿的,引用前面章节的例子来说 阅读全文

C++ Standard Stl -- SGI STL源码学习笔记(01) auto_ptr

2012-07-25 07:03 by respawn, 3154 阅读, 1 推荐, 收藏, 编辑
摘要:写在前面: 学C++,到现在是第九天了,所以我只是在理论上对C++有浅显的认知.对于实际应用,我还没有实际的经验.所以接下来对于SGI STL源码分析的相关文章,更多的就只是针对源码的直接分析,是没有关于实际应用场景经验之谈的.所以我们只谈源码,其他不谈. 对于侯捷的那么本>,我下载了PDF,只是粗略的浏览了一下目录而已.想要说明的问题就是我没有参考别人现成分析的书籍,可能在分析的过程中有参考过一些博客中不错的关于一些源码阅读过程中细节问题的解释.如果分析的有误,也是我自己分析的过错,绝对不是参考XX人错误的分析资料,与他人无关.auto_ptr的实现在memory文件中,包括所有的注释 阅读全文

学习C++要多久? 是时间的问题吗?

2012-07-24 08:20 by respawn, 16631 阅读, 7 推荐, 收藏, 编辑
摘要:这一周没有写过博客,是因为时间被安排来学习C++. 尽管学C很久,但是不得不承认,在C++方面,只能是个小菜鸟~今天是第八天了,我在看着sgi stl的源码. 欣赏着曾让C++繁荣的经典之作.为什么要学习C++ ? 以前我是如此的固执的认为C++是一门很悲剧的语言,因为它夹在C与 JAVA的中间,注定高不就低不行. 只能委身在游戏领域了~也不知道自己是怎么改变自己的想法的,可能是因为自己马上步入大四,就业的压力来了. 随着自己渐多的浏览招聘信息,发现自己需要学习一下C++,给自己在招聘的时候提供更多的选择.随着学C的逐渐深入,也意识到到了一定的阶段,需要的就是实践的经验来提高自己,理论的高度已 阅读全文

学习工具篇 - eclipse 中使用autotools plugins

2012-07-16 09:33 by respawn, 4096 阅读, 1 推荐, 收藏, 编辑
摘要:很多时候我们都是在使用IDE来构建自己的小项目,使用IDE,在学习中足够了。但是渐渐的发现使用IDE已经满足不了自己了,发现自己处于两难的境地。为什么这么说呢? 首先,最主要的出发点是想要去自己动手构建一个项目。 其次,去学习如何写makefile吗? 第三,有没有其他的选择呢?学习makefile,是根本上出发去学习如何组织构建一个项目,应该是不错的选择,真的不错吗?当尝试去查找makefile相关资料的时候,看到长长的文档目录和密密麻麻的英文,即使我承认自己的英文水平还不错,但是头也大了。也有一些不错的中文makefile教程,但是学习起来无异于学习一门新的语言,从时间的角度出发,至少对于 阅读全文

GNU C - 关于8086的内存访问机制以及内存对齐(memory alignment)

2012-07-10 23:18 by respawn, 3045 阅读, 2 推荐, 收藏, 编辑
摘要:补充在之前文章中一些关于内存对齐方面知识的介绍~ 阅读全文

GNU C - Using GNU GCC __attribute__ mechanism 02 Variable Attribute && Type Attribute

2012-07-09 20:51 by respawn, 1485 阅读, 2 推荐, 收藏, 编辑
摘要:上篇文章中介绍了 __attribute__ mechanism Function Attribute 参考链接:http://www.cnblogs.com/respawn/archive/2012/07/09/2582548.html我不喜欢对自己写的文章做过多的修饰,所以很不注重排版,喜欢走简约路线. 所以如果您认为我的博文排版很差而忽略文章内容的话,那么我只能说我注重技术,不注重次要的浪费时间的无价值动作. 如果您可以对我的博文进行批评指正的话,那我这里谢过了.技术嘛,需要多讨论,多研究,不是写出来给别人赞扬的.(上述仅代表我个人观点,如果您不喜欢,请原谅.)下午有事出去了,直到刚才. 阅读全文

GNU C - Using GNU GCC __attribute__ mechanism 01 Function Attribute

2012-07-09 13:12 by respawn, 2929 阅读, 1 推荐, 收藏, 编辑
摘要:近来阅读glibc源码的时候遇到很多关于__attribute__的问题,索性就查找了相关的资料,学习了一下.要是不解决了这个问题,有的时候还真的是比较难下手.就拿glibc来说,使用xcscope搜索POSIX pthread函数: pthread_create,得到的结果如下:如果一路跟进函数的话,最后会发现这样子的一个宏定义:下面是GNU glibc开发人员对此类宏的注释,看起来直白一点:现在只是知道,在链接的时候,寻找pthread_create会被链接到__pthread_create_2.1/__pthread_create_2.0.上面展现的是GNU glibc中很常用的编程技巧 阅读全文