
C/C++
文章平均质量分 88
加茯苓
这个作者很懒,什么都没留下…
展开
-
字符串格式化
sprintf _snprintf(snprintf)std::stringstreamstd::strstreamboost::lexical_castboost::formatCstring::Format 1.Sprintf使用sprintf 不安全,轻则破坏数据的准确性,重则程序崩溃。请看下面的程序片段:CString strTest = "hel原创 2008-10-25 21:50:00 · 1841 阅读 · 1 评论 -
遍历二叉树的递归算法与非递归算法
遍历二叉树的递归算法与非递归算法 先来看下面这棵二叉树。如图1。现在我们要对它进行先序遍历。递归思想:就是把这个大树拆分成N棵小树,每棵小树都进行一次先序遍历。再把这些遍历连合起来就是这棵树的先序遍历了。同理中序遍历和后序遍历也是一样的方法。下面举例说明先序递归算法:令先序遍历的结果等于S; 图1 对于图2这棵小树的先序原创 2009-03-08 17:26:00 · 15449 阅读 · 3 评论 -
发现boost::object_pool的效率很低!难道大师没有考虑效率的问题?
先不多说,看看我这一组测试结果:我的机器是奔4 CPU3.0Hz, 内存1G对象X的大小是1028个字节。 1)直接使用new 和 delete: (1)先 new 10000 个X 对象,再 delete 10000个X对象。 (2)重复(1)10次! (3)结果:sizeof(X)=1028New Time:47Delete Time:31Ne原创 2009-04-10 19:45:00 · 2437 阅读 · 2 评论 -
一个简单但很好用的线程锁
#ifndef __LOCK_H__#define __LOCK_H__#ifdef _WIN32#include #else#include #endifclass CLock{public: class CMutex { friend class CLock; public: CMutex() {#ifdef _WIN32 InitializeCriticalSection(原创 2009-06-01 16:12:00 · 725 阅读 · 0 评论 -
Google protobuf c++版, 提高性能的一个细节
之前使用protobuf protobuf针对required 标记的字段分了两类,对每类都有相应的处理方式。其一:MESSAGE STRING;其二:非MESSAGE 和STRING,即原始数据类型,如INT32 INT64 FLOAT 等。我们把它们称为:repeated message(或者string)和repeated raw(原始数据类型)两种。PROTOBUF针对前者对内存的管理是原创 2014-10-08 17:08:17 · 7080 阅读 · 1 评论