上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 74 下一页
  2017年3月20日
摘要: 1.引言: 上一篇文章已经介绍了如何构建一个无参数无返回值的函数指针的委托,这篇文章将对上一文章所述委托进行扩展,使得可以注册任意函数指针,不过再讲篇内容之前先要介绍一下实现这个功能所需要了解的C++11的一个新特性———可变参数模板。 2.可变参数模板: template(模板)是源于将类型和实现 阅读全文
posted @ 2017-03-20 20:24 莫水千流 阅读(445) 评论(0) 推荐(0)
摘要: 1.引言: 如果你接触过C#,你就会觉得C#中的delegate(委托)十分灵巧,它的用法上和C\C++的函数指针很像,但是却又比C\C++的函数指针更加灵活。并且委托可以一对多,也就是可以注册多个函数,甚至是某个类的非静态成员函数。而实现事件消息机制【1】也十分依赖于委托机制。基于这样的目的,我们 阅读全文
posted @ 2017-03-20 20:23 莫水千流 阅读(719) 评论(0) 推荐(0)
  2017年3月19日
摘要: 模板编程中如果要特化或偏特化(局部特化)一个类模板,需要特化该类模板的所有成员函数。类模板中大多数成员函数的功能可能是一模一样的,特化时我们可能只需要重新实现1、2个成员函数即可。在这种情况下,如果全部重写该模板类的所有成员函数,不但会增加工作量,也不利于代码的维护。 例如下面的类模板A,只有在模板 阅读全文
posted @ 2017-03-19 18:41 莫水千流 阅读(7473) 评论(2) 推荐(0)
  2017年3月15日
摘要: 【event & EventHandler】 在老C#中EventHandler指的是一个需要定义一个delegate,这个delegate是回调的规范。例如: public delegate void CustomEventHandler(object sender, CustomEventArg 阅读全文
posted @ 2017-03-15 10:36 莫水千流 阅读(644) 评论(0) 推荐(0)
  2017年3月14日
摘要: Aho-Corasick算法是多模式匹配中的经典算法,目前在实际应用中较多。 Aho-Corasick算法对应的数据结构是Aho-Corasick自动机,简称AC自动机。 搞编程的一般都应该知道自动机FA吧,具体细分为:确定性有限状态自动机(DFA)和非确定性有限状态自动机NFA。普通的自动机不能进 阅读全文
posted @ 2017-03-14 15:40 莫水千流 阅读(795) 评论(0) 推荐(0)
  2017年3月13日
摘要: 标准C++类std::string的 内存共享和Copy-On-Write技术 陈皓 1、 概念 Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的 阅读全文
posted @ 2017-03-13 14:00 莫水千流 阅读(2311) 评论(0) 推荐(0)
摘要: 由于浅拷贝使多个对象共用一块内存地址,调用析构函数时导致一块内存被多次释放,导致程序奔溃。 实现string类的时候通常显示的定义拷贝构造函数和运算符重载函数。 由于释放内存空间,开辟内存空间时花费时间,因此,在我们在不需要写,只是读的时候就可以不用新开辟内存空间,就用浅拷贝的方式创建对象,当我们需 阅读全文
posted @ 2017-03-13 13:48 莫水千流 阅读(516) 评论(0) 推荐(0)
摘要: 阅读目录 1.智能指针是什么 2.普通指针存在的问题 3.什么是引用计数 4.智能指针实现 4.1.基础对象类 4.2.辅助类 4.3.为基础对象类实现智能指针类 4.4.智能指针类的使用与测试 5.智能指针类的改进一 6.智能指针改进二 阅读目录 1.智能指针是什么 2.普通指针存在的问题 3.什 阅读全文
posted @ 2017-03-13 13:42 莫水千流 阅读(1284) 评论(0) 推荐(0)
摘要: 标准C++类std::string的内存共享,值得体会: 详见大牛:https://www.douban.com/group/topic/19621165/ 顾名思义,内存共享,就是两个乃至更多的对象,共同使用一块内存; 1.关于string的内存共享问题: 通常,string类中必有一个私有成员, 阅读全文
posted @ 2017-03-13 12:59 莫水千流 阅读(1086) 评论(0) 推荐(0)
  2017年3月10日
摘要: placement new是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。 它的原型如下: void *operator new( size_t, void *p ) t 阅读全文
posted @ 2017-03-10 13:51 莫水千流 阅读(555) 评论(0) 推荐(0)
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 74 下一页