C++
_坤哥
这个作者很懒,什么都没留下…
展开
-
内存字节对齐
#pragma pack(8)struct A{ char a; short b;};struct B{ char c; A d; long long e;};#pragma pack() { A stA; B stB; stB.c = 1; stB.d.a = 2; stB.d.b = 3; stB.e = 4; A *pA = &stA; B *pB = &stB; sizeof(A); siz原创 2011-01-16 17:00:00 · 316 阅读 · 0 评论 -
排序算法--冒泡
#include template void BubbleSort(T iData[], size_t iBegin, size_t iEnd){ bool bHasChange = false; T iTmp; size_t p = iEnd; while(iEnd >= iBegin) { bHasChange = false; p = iEnd; while(原创 2014-01-05 21:38:31 · 447 阅读 · 0 评论 -
排序算法--归并排序
#include #include //从 iM 将 iData[] 分为两个有序序列 template void Merge(T iData[], size_t iBegin, size_t iM, size_t iEnd){ T *iTmpData = new T[iEnd-iBegin+1]; assert(iTmpData); size_t r = 0; size_t原创 2014-01-05 21:44:18 · 489 阅读 · 0 评论 -
排序算法--插入排序
#include template void InsertSort(T iData[], size_t iBegin, size_t iEnd){ size_t iCurPos = iBegin+1; T iCurValue; size_t p = 0; while (iCurPos <= iEnd) { iCurValue = iData[iCurPos]; p =原创 2014-01-05 21:44:53 · 450 阅读 · 0 评论 -
排序算法--基数排序(箱排序的改进)
#include #include template size_t FindDepth(T iData[], size_t iBegin, size_t iEnd){ size_t iMaxDepth = 0; size_t iCurDepth = 0; char cData[15] = ""; while (iBegin <= iEnd) {原创 2014-01-05 21:42:48 · 523 阅读 · 0 评论 -
内存越界的一种定位方法
#include #include #include void fn(char *str){ memset(str, 0, 64); return;}int main(int argc, char **argv){ char badstr[32] = "abc"; int fd = 1; printf("badstr = %s\n", ba原创 2013-05-16 16:13:58 · 4354 阅读 · 1 评论 -
排序算法--选择排序
template void SelectSort(T iData[], size_t iBegin, size_t iEnd){while(iBegin {size_t iMinPos = iBegin;size_t p = iBegin + 1;while(p {if (iData[p] iMinPos = p;p++;}if (iMinPos原创 2014-01-05 21:41:21 · 490 阅读 · 0 评论 -
排序算法--Shell排序
#include template static void ShellSubSort(T iData[], size_t iBegin, size_t iEnd, size_t n){ if (iEnd < iBegin + n) return; size_t iCurPos = iBegin+n; T iCurValue; size_t p = 0; while (iC原创 2014-01-05 21:40:38 · 560 阅读 · 0 评论 -
CLOSE_WAIT
http://kingyang85.blog.163.com/blog/static/1287536762010112101926245/1 CLOSE_WAIT状态的生成原因[转] CLOSE_WAIT状态的生成原因首先我们知道,如果我们的Client程序处于CLOSE_WAIT状态的话,说明套接字是被动关闭的!因为如果是Server端主动断转载 2013-10-17 09:34:50 · 494 阅读 · 0 评论 -
类中虚函数、普通成员函数的调用
class A{public: virtual void P1() { printf("A1\n"); } void P2() { printf("A2\n"); }};class B : public A{public: virtual void P1() { printf("B1\n"); } void P2() { printf("B2\n");原创 2013-04-17 10:47:06 · 1266 阅读 · 0 评论 -
c++大端小端判断
大伙觉得这样判断大端小端有问题没?int main(){ if (0x78 == (char)0x12345678) printf("little_endian\n"); else printf("big_endian\n");return 0;}原创 2013-04-17 00:47:04 · 1140 阅读 · 0 评论 -
基类构造中,不要期望多态行为
#ifndef _PLOYMORPHISM__H#define _PLOYMORPHISM__Hclass CBase{public: CBase() { init(); }; ~CBase() {}; virtual void init() { printf("CBase::init()\n");原创 2013-04-14 21:47:29 · 527 阅读 · 0 评论 -
extern "C"
使得c和c++或其它语言实现混合编程1、声明函数为extern类型2、声明函数按照C语言的方式编译和链接int fun(int a, char b);c语言命名:_func++语言静态函数命名:_fun_int_charc++语言类函数的命名:?fun@ClassName@@YGHHD@Zc++使用c头文件:[cTest.h]extern原创 2013-03-28 15:55:25 · 573 阅读 · 0 评论 -
top virl 不断增长
多线程程序,top发现virt一直增长1次 7-8m的速度增长请检查你的 pthread_create() 它可能就是元凶解决方案:1、线程常驻,并通过IPC管理起来2、继续创建,但要pthread_detach(pthread_self())原创 2013-03-27 18:04:26 · 1565 阅读 · 0 评论 -
boost::bind 函数与类成员的区别
class CP{public: int print(int a, int b) { printf("CP print() a=%d, b=%d"); }}; int print(int a, int b){ printf("print() a=%d, b=%d");} CP f &rf=f;CP*原创 2012-09-23 22:26:23 · 488 阅读 · 0 评论 -
C++字符串格式化 sprintf
[转]C++字符串格式化 sprintfsprintf你知道多少(转) 选自《CSDN 社区电子杂志——C/C++杂志》在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者转载 2011-07-07 14:27:52 · 643 阅读 · 1 评论 -
Singleton模式
<br /><br />//GOF<br />// Header file Singleton.h <br />class Singleton {<br />public:<br /> static Singleton *Instance()<br /> {<br /> if( !m_pInstatnce)<br /> m_pInstance = new Singleton;<br /> return m_pInstance;<br />原创 2011-05-18 15:42:00 · 289 阅读 · 0 评论 -
Map中STL
<br /><br />Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。<br />下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号转载 2011-05-18 15:44:00 · 317 阅读 · 0 评论 -
排序算法--快排
#include #include template size_t Partition(T iData[], size_t i, size_t j){ T iCurValue = iData[i]; while (i < j) { if (iData[j] <= iCurValue) { iData[i] = iData[j]; while (i < j)原创 2014-01-05 21:43:31 · 487 阅读 · 0 评论