
c++
文章平均质量分 74
NB_vol_1
这个作者很懒,什么都没留下…
展开
-
使用map+函数指针代替switch和if-else的一个例子
很多时候我们都会遇到用switch或者if-else来进行大量判断的情况,如下面的例子int code = 4;switch (code){ case 0: // break; case 0: // break; case 1: // break; case 2: // break; case 0:原创 2015-06-11 21:49:49 · 5520 阅读 · 1 评论 -
一个简单的智能指针的实现
#include using namespace std;// 一个简单的智能指针的实现template class SmartPtr{public: // 构造函数:p是指向已经动态创建的int对象指针 SmartPtr(T *p) : m_pHelpPtr(new HelpPtr(p)) { } // 复制构造函数:复制成员并将使用计原创 2016-05-19 19:42:03 · 953 阅读 · 0 评论 -
深度探索C++对象模型读书读书笔记
深度探索C++对象模型读书读书笔记 作者:phylips@bmy 2009-5 月 1 Perface ................................................................转载 2016-03-15 09:58:19 · 893 阅读 · 0 评论 -
一个Select模式的简单服务器
#ifndef SELECTSOCKET_H#define SELECTSOCKET_H// 所有的头文件#include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2015-06-01 11:59:11 · 791 阅读 · 0 评论 -
jsoncpp的使用
首先下载 jsoncpp-src-0.5.0解压,用VS打开里面的工程,进行编译,得到一个 json_vc71_libmtd.lib的文件用VS创建一个工程,将 json_vc71_libmtd.lib和jsoncpp-src-0.5.0\include\json的文件复制到工程目录下,测试代码如下:#include "../CommonClass/jsoncpp/json/jso原创 2015-05-26 15:11:21 · 838 阅读 · 0 评论 -
在c++中使用protobuf
首先下载protobuf-2.5.0,解压之后,打开VS 进行编译,得到libprotoc.lib、libprotobuf-lite.lib、libprotobuf.lib和protoc.exe创建一个文件proto文件:testpro.proto,内容如下:message Person { required string name = 1; required int3原创 2015-05-26 14:55:33 · 1455 阅读 · 0 评论 -
c++实现的内存池
一、说明1、通常我们申请内存/释放内存用的都是系统默认的函数new和delete,每次调用它们都会造成巨大的开销,申请/释放的次数不多可能看不出有什么不同。如果频繁的申请和释放内存,就会导致系统将大量的时间花在向堆申请、释放内存的操作中,在此情况下我们应该构建自己的内存池,以提高内存申请和释放的速度2、内存池的原理就是一次申请一大块内存,然后在程序需要的时候从这一大块内存中分出一部分给程序原创 2012-09-27 14:34:02 · 1011 阅读 · 0 评论 -
C++同步队列
本文实现了一个带锁同步队列,可以让多个线程向队列里读写数据而不会产生异常,很方便的应用于生产者消费者模式的程序中同步队列没什么难的,无非就是读写的时候加锁,并且写入的时候通知消费者。稍微复杂的地方在于怎么样让生产者消费者停止运行,或者说,怎么才能让同步队列退出;因为一般的应用不可能无限运行下去,它总有停止的时候,当应用程序退出的时候,我们需要告诉生产者和消费者这个消息。我的做法是这样的,...原创 2019-08-19 20:01:14 · 1272 阅读 · 0 评论