关闭

【设计模式】设计模式C++编程实现之观察者模式(ObserverPattern)

观察者模式定义: 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。 观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听...
阅读(2488) 评论(2)

【设计模式】设计模式C++编程实现之单例模式(Singleton Pattern)

有一些对象我们只需要一个,比如说线程池(threadpool)缓存(cache)、对话框、处理偏好设置和注册表的对象、日志对象,充当打印机、显卡等设备的驱动程序的对象。如果制造出多个实例,则会导致许多问题的产生。 许多时候的确可以通过程序员之间的阅读就可以办到,但是利用单例模式是更好的办法。 单例模式给我们一个全局的访问点,和全局变量一样方便,有没有全局变量的缺点(必须在程序开始就创建,如果后...
阅读(2901) 评论(1)

【STL深入学习】SGI STL空间配置器详解(二)-第二级空间配置器

本文讲解SGI STL空间配置器的第二级配置器。 相比第一级配置器,第二级配置器多了一些机制,避免小额区块造成内存的碎片。不仅仅是碎片的问题,配置时的额外负担也是一个大问题。因为区块越小,额外负担所占的比例就越大。 额外负担是指动态分配内存块的时候,位于其头部的额外信息,包括记录内存块大小的信息以及内存保护区(判断是否越界)。要想了解详细信息,请参考MSVC或者其他malloc实现。...
阅读(2996) 评论(1)

【C++】new A和new A()的区别详解

我们在C++程序中经常看到两种new的使用方式:new A以及new A()。那么这两种究竟有什么区别呢? 调用new分配的内存有时候会被初始化,而有时候不会,这依赖于A的类型是否是POD(Plain old data)类型,或者它是否是包含POD成员、使用编译器生成默认构造函数的类。 附:POD类型 POD是Plain old data的缩写,它是一个struct或者类,且...
阅读(6703) 评论(1)

【C++面向对象】类的静态成员函数(static member functions)

一、静态成员函数的引入 在引入静态成员函数之前,C++语言要求所有的成员函数都必须经由该类的对象来调用。而实际上,只有当成员函数中有存取非静态数据成员时才需要类对象。类对象提供this指针给这种函数使用。这个this指针把“在成员函数中存取的非静态数据成员”绑定于“对象内对应的成员”身上。如果没有任何一个成员被直接存取,事实上就不需要this指针,因此也就不需要通过一个类对象来调用一个成...
阅读(2372) 评论(1)

【实习生笔试面试】腾讯2013实习生电话面试总结

总结下今天的电面,自我感觉不怎么好,说出来和大家交流下! 本来下午刚吃完饭窝在实验室休闲一会,刷人人来着,突然电话响了,是腾讯那边打电话过来面试的!毫无心理准备,第一次电面,好紧张! 本人计算机小硕一枚,学渣一个~面试官挺随和的,问了下我名字,然后问我说话便否,接着说咱俩聊聊吧~偶赶紧找了个安静偏僻的地方,做好审讯准备! 面试官基本是对着简历问问题的,简历上写什么就问...
阅读(5122) 评论(2)

【STL学习】自己动手C++编程实现hash table(散列表)

SGI STL中散列表采用链接法解决冲突。结构中维护了一个vector,vector中每一个元素称为一个桶(bucket),它包含的是一个链表的第一个节点。 下面代码展示了自己编程实现的hash table,C++模板类封装。 如有错误,还请包涵和指正(E-Mail:xiajunhust@gmail.com)! HashTable.h: //《STL源码剖析》5.7...
阅读(4481) 评论(1)
    个人资料
    • 访问:1738209次
    • 积分:14181
    • 等级:
    • 排名:第965名
    • 原创:122篇
    • 转载:15篇
    • 译文:6篇
    • 评论:937条
    博客专栏
    公告
    博客已迁移至:http://xiajunhust.github.io/