自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 STL中的容器对比

1.序列式容器 容器内部各个元素的位置取决插入的方式,与元素本身无关 vector :动态数组,连续存储 deque:双端队列,分片连续存储 list:双向链表 2.关联容器 容器内部元素的位置取决于特定的排序和元素值本身  set,multiset:内部数据组织采用红黑树(一种严格意义上的平衡二叉树). map存储key-value对,按key排序,map的内部数据结构也

2015-03-31 10:25:43 443

原创 各种排序性能比较

1. 性能与初始位置无关的 堆、归并、二分插入 :因为都是原始数据对半分开比较排序 选择排序:比较次数与初始位置无关,交换次数有关 2.性能与初始位置有关 冒泡:如果不设置标志,比较次数与初始化位置无关,但是如果设置标志,对于已经排序的序列,第一趟冒泡就知道全都排好序了 插入排序:排序与否影响插入位置,移动元素个数 -------------------------------

2015-03-28 10:50:13 1335

原创 数据库 三范式

1.  1范式 无重复的列,列不能再分 2.  2范式 有主键,且非主属性得完全依赖主键,不能只依赖主键的一部分-------非主属性 非不部分依赖 主键 3.  3范式 非主属性不能依赖非主键------非主键的列只能依赖主键,不能依赖其他的列

2015-03-27 16:02:14 443

转载 c++虚继承

转自:http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/05/2537451.html 1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继

2015-03-23 21:44:58 400

原创 c++ 虚函数

虚继承 #include using namespace std; class Parent { public: void func(int i){ cout << "Parent::func(int i)" << endl; } virtual void func2() { cout << "Parent::func2()" << endl; } virtual vo

2015-03-22 22:31:50 426

原创 构造函数、初始化列表的调用顺序

#include using namespace std; class ParentA { public: ParentA() { cout } ~ParentA() { cout } }; class ClassB { public: ClassB(int b) { cout } ~ClassB() { cout } };

2015-03-22 20:58:10 958

转载 借shared_ptr实现copy on write 以减少锁的使用

shared_ptr是引用计数智能指针,如果当前只有一个观察者,那么引用计数为1,可以用shared_ptr::unique()来判断 对于write端,如果发现引用计数为1,这时可以安全地修改对象,不必担心有人在读它。 对于read端,在读之前把引用计数加1,读完之后减1,这样可以保证在读的期间其引用计数大于1,可以阻止并发写。 比较难的是,对于write端,如果发现引用计数大于1,该如何

2015-03-11 09:33:30 578

转载 c++可变类型

可变类型解决方案 1.void*. 这种方法不是类型安全的 2. boost::any 任意类型的类型安全存储以及安全的取回 在标准库容器中存放不同类型的方法,比如说vector

2015-03-06 15:19:54 2150

转载 线程进程通知

进程线程的等待通知: pipe :单向 socketpair:双向 eventfd eventfd 是一个比 pipe 更高效的线程间事件通知机制,一方面它比 pipe 少用一个 file descripor,节省了资源;另一方面,eventfd 的缓冲区管理也简单得多,全部“buffer” 只有定长8 bytes,不像 pipe 那样可能有不定长的真正 buffer。 线程

2015-03-04 10:50:03 768

转载 定时函数

定时函数,用于让程序等待一段时间或安排计划任务 首选timerfd_* 的原因: sleep / alarm / usleep 在实现时有可能用了信号 SIGALRM,在多线程程序中处理信号是个相当麻烦的事情,应当尽量避免 nanosleep 和 clock_nanosleep 是线程安全的,但是在非阻塞网络编程中,绝对不能用让线程挂起的方式来等待一段时间,程序会失去响应。正确的做法是注

2015-03-03 15:24:37 784

转载 TCP网络编程最本质是的处理三个半事件

TCP网络编程最本质是的处理三个半事件  连接建立:服务器accept(被动)接受连接,客户端connect(主动)发起连接  连接断开:主动断开(close、shutdown),被动断开(read返回0)  消息到达:文件描述符可读  消息发送完毕:这算半个。对于低流量的服务,可不必关心这个事件;这里的发送完毕是指数据写入操作系统缓冲区,将由TCP协议栈负责数据的发送与重传,不代表对方已

2015-03-03 09:11:42 1418

iNodeClient_Linux(32/64)

inode客户端linux版本,本身是32位,但是通过安装相应的库,也可以用在64位的系统上:http://blog.csdn.net/le119126/article/details/49950815 64位redhat亲测可用

2015-11-20

C#与VB.NET的转换工具

C#、VB.NET和delphi之间的相互转换工具,免安装,只支持单个文本文件转换,不支持这个工程文件转换。

2012-03-28

mysql-connector-net-6.3.6(包括src源文件)

目前最新的。包含源文件。感觉用在.net上操作mysql很不错。。

2011-03-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除