野百合也有春天

导航

2010年11月21日 #

戏说Singleton模式

摘要: GOF著作中对Singleton模式的描述为:保证一个class只有一个实体(Instance),并为它提供一个全局访问点(global access point)。从其描述来看,是非常简单的,但实现该模式却是复杂的。Singleton设计模式不存在一种所谓的“最佳”方案。需要根据当时的具体问题进行具体解决,下面将讲述在不同环境下的解决方案。Singleton的详细解释,请大家看GOF的著作《设计... 阅读全文

posted @ 2010-11-21 21:56 flydream 阅读(159) 评论(0) 推荐(0) 编辑

2010年11月20日 #

精美图标网址

摘要: 精美图标:http://findicons.com/http://www.iplaysoft.com/iconfinder.html http://www.iplaysoft.com/findicons.html http://www.iconpng.com/http://www.ipc.me/14-free-phone-apps-icons.htmlhttp://www.iconarchive.... 阅读全文

posted @ 2010-11-20 19:58 flydream 阅读(225) 评论(0) 推荐(0) 编辑

2010年11月1日 #

std::pair用法

摘要: #include #include #include using namespace std; int main () { pair product1 ("tomatoes",3.25); pair product2; pair product3; product2.first = "lightbulbs"; // type of first is stri... 阅读全文

posted @ 2010-11-01 09:49 flydream 阅读(8640) 评论(1) 推荐(0) 编辑

2010年10月20日 #

使用std::accumulate计算和、积和平均值

摘要: class DPoint { public: DPoint(double _x,double _y, double _z) : x(_x),y(_y),z(_z){} double x; double y; double z; }; class PointAverage: public binary_function { public: PointAverage():xSum(0... 阅读全文

posted @ 2010-10-20 20:48 flydream 阅读(1354) 评论(1) 推荐(0) 编辑

2010年10月18日 #

距某点最近的算法实现

摘要: #include double dist(double i1, double i2) { return fabs(i1-i2); } int main() { vector iv; iv.push_back(1); iv.push_back(2); iv.push_back(3); iv.push_back(4.9); iv.push_back(6); iv.push_b... 阅读全文

posted @ 2010-10-18 21:58 flydream 阅读(249) 评论(0) 推荐(0) 编辑

2010年10月15日 #

Boost文件读写,断言、日期

摘要: #include "stdafx.h" //#define BOOST_DISABLE_ASSERTS #define BOOST_ENABLE_ASSERT_HANDLER #include #include #include #include #include #include #include #include using namespace boost; using ... 阅读全文

posted @ 2010-10-15 20:42 flydream 阅读(3191) 评论(0) 推荐(0) 编辑

2010年9月11日 #

mem_fun的用法,以及使用wcout

摘要: #include "stdafx.h" #include #include #include #include #include using namespace std; class Widget { public: Widget(wstring str) { str_ = str; } wstring str_; void Print() { wcout w_l... 阅读全文

posted @ 2010-09-11 20:44 flydream 阅读(417) 评论(0) 推荐(0) 编辑

2010年9月5日 #

std::vector的一些使用注意事项

摘要: 使用at()函数而不是operator[]:理由是at()可以抛出invalid vector[T] subscript异常,而operator[]不会做范围检查。因此,at()函数更加安全。 使用vector的assign函数复制一个vector: 阅读全文

posted @ 2010-09-05 20:36 flydream 阅读(2025) 评论(0) 推荐(0) 编辑

singleton的内存泄漏及线程安全性问题

摘要: 原文链接: http://patmusing.blog.163.com/blog/static/135834960201002322226231/ 一、最简单的实现方式语句(1)中new了一个对象,但没有被delete,因此肯定会造成内存泄漏。二、使用auto_ptr来解决内存泄漏问题三、基于模块的方法实现:进一步地,我们还可以将Singleton类,写成模板类,这样就可以更加灵活了。为此,我们另... 阅读全文

posted @ 2010-09-05 09:58 flydream 阅读(476) 评论(0) 推荐(0) 编辑

2010年9月4日 #

在运行时确定对象的类型

摘要: #include "stdafx.h" #include #include using namespace std; class Base {}; class Derived : public Base {}; int main( ) { Base b, bb; Derived d; // Use typeid to test type equality if (typei... 阅读全文

posted @ 2010-09-04 13:35 flydream 阅读(226) 评论(0) 推荐(0) 编辑