C++/boost
Brice_Liu
这个作者很懒,什么都没留下…
展开
-
Build a Simple Program Using Boost in(std::cin) : What does it mean?
From:http://stackoverflow.com/questions/8262994/instdcin-what-does-it-meanIn the first example of Boost, in(std::cin) is used. I think in() get an istream and create some kind of iterator. H转载 2013-01-31 12:40:57 · 487 阅读 · 0 评论 -
C语言实现继承和多态
继承和多态是面向对象语言最强大的功能。有了继承和多态,我们可以完成代码重用。在C中有许多技巧可以实现多态。本文的目的就是演示一种简单和容易的技术,在C中应用继承和多态。通过创建一个VTable(virtual table)和在基类和派生类对象之间提供正确的访问,我们能在C中实现继承和多态。VTable能通过维护一张函数表指针表来实现。为了提供基类和派生类对象之间的访问,我们可以在基类中维护派生类的转载 2013-06-30 20:26:39 · 691 阅读 · 0 评论 -
笔试中的Singleton单例模式
引子 “请写一个Singleton。”面试官微笑着和我说。 “这可真简单。”我心里想着,并在白板上写下了下面的Singleton实现: class Singleton { public: static Singleton& Instance() { static Singleton singlet转载 2013-06-30 20:24:24 · 666 阅读 · 0 评论 -
Design Pattern 网站推荐
http://www.oodesign.com/decorator-pattern.htmlhttp://sourcemaking.com/design_patterns/template_method原创 2013-06-30 22:34:13 · 739 阅读 · 0 评论 -
STL中的函数对象(Funciont Objects)
概要一个函数对象(Function Object或者Functor)简单的说就是能够以函数调用的形式出现的任何东西。一个普通的函数显然就是一个函数对象,函数指针也是,更一般的,一个定义了operator()的Class也是。描述基本的函数对象的概念有Generator,Unary Function(一元函数),Binary Function(二元函数):他们各自表示能以F(),转载 2013-04-25 14:09:49 · 437 阅读 · 0 评论 -
STL之函数对象(二)
原文来自:http://www.cnblogs.com/cobbliu/archive/2012/04/21/2461184.htmlSTL中很多算法都要对迭代器范围内的元素做特定操作,这些操作是需要用户显示传递给迭代器,如何才能有效地传递这些操作呢?STL为我们提供了函数对象来解决这个问题。本文先简要介绍函数对象的概念,然后配合源代码介绍STL为我们提供的几种函数对象,最后介转载 2013-04-25 15:21:00 · 537 阅读 · 0 评论 -
STL函数对象及函数对象适配器
一 函数对象Functor STL中提供了一元和二元函数的两种Functor,通过unary_function和binary_function提供了这两种不同参数数量的Functor的基本结构,在这两个类型中,分别内嵌定义一元和二元函数操作在模版推演的时候需要用到的typedef. //一元函数的定义为templatestruct unary_function {转载 2013-04-25 15:14:08 · 410 阅读 · 0 评论 -
引用计数我不怕之智能指针
前言使用引记数,就算是再历害的高手也难免会出错。而一但出错了,之后再去查问题可就相当的困难了。正如我曾经看到,有一段代码是这样的:m_spView->Release(); m_spView->Release(); m_spView->Release();看到这段代码,就知道引用计数出问题了。他想通过这种方式,把多出来的计数Release掉。但这么做能解决问题吗?答案转载 2013-04-23 16:42:39 · 900 阅读 · 0 评论 -
FlyWeight模式——设计模式学习笔记
FlyWeight模式一 意图运用共享技术有效地支持大量细粒度的对象。二 动机 有些应用程序得益于在其整个设计过程中采用对象技术,但简单化的实现代价极大。使用面向对象的抽象化,可能会造成庞大的对象群,造成空间的巨大消耗,而影响性能。在文档编辑器例子中如果一个字符对应一个对象,那么一篇文档所要容纳的对象将是非常的庞大耗费大量的内存。转载 2013-04-23 15:24:40 · 534 阅读 · 0 评论 -
引用计数的智能指针的实现与思考
引用计数在软件开发中是一项非常重用的技术,它可以说是无处不,我们在不知不觉中都在和它打交道,比如 Windows上的COM和Handle, Mac上的ref句柄,脚本语言中的垃圾回收技术。但是在C++标准库中,却没有内置支持引用计数的技术的支持,下面我们就尝试封装自己的基于引用计数的智能指针。一般来说,计数方法的实现有2种,内置和外置: 内置指的是对象本身就有计数功能,也就是计数的转载 2013-04-23 16:44:06 · 591 阅读 · 0 评论 -
一种基于引用计数机制的智能指针实现
很久以前就对基于引用计数的指针指针很感兴趣,今天突然又一次想到这个问题,所以就写了一个基于引用技术的智能指针。该智能指针的具体实现方式如下: 1#include 2#include 3#include 4#include 5#include 6 8 9using namespace std;1011templat转载 2013-04-23 16:43:32 · 666 阅读 · 0 评论 -
Flyweight模式 的学习
一、Flyweight模式的意图:缓存(共享)可以共同的对象、属性,避免创建大量的重复对象、内容。二、Flyweight模式的特点:为重复或可共享的对象、属性设置一个缓冲,称为内部属性。这些内部属性一般情况下都是不可修改的,也就是在第一个对象、属性被创建后,就不会去修改了(否则就没意义了)。除了共享对象、属性之外,还有一些是基于应用环境,或是实时数据,这些无法共享的转载 2013-04-23 15:24:04 · 542 阅读 · 0 评论 -
Step By Step(C++模板类)
http://www.cnblogs.com/stephen-liu74/archive/2012/08/22/2599400.html 和函数一样,C++中的class也可以类型参数化,其中容器类是极具这一特征的。对于模板类的基本定义和使用,可以参考STL,这里就不做过多的赘述了。下面将主要介绍一下与其相关的高级实用特征。一、模板的特化: 这里可以先将类模转载 2013-04-10 12:42:23 · 548 阅读 · 0 评论 -
为什么C++编译器不能支持对模板的分离式编译
为什么C++编译器不能支持对模板的分离式编译 刘未鹏(pongba) /文首先,C++标准中提到,一个编译单元[translation unit]是指一个.cpp文件以及它所include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp 文件为一个.obj文件,后者拥有PE[Portable Executable,即windows可执行文件]转载 2013-04-10 12:25:20 · 517 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
参考如下博客,http://blog.csdn.net/dotphoenix/article/details/4345174写了一个测试程序,代码和运行结果如下:#include "stdlib.h"#include "stdio.h"#define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning:原创 2013-08-01 22:15:09 · 717 阅读 · 0 评论