08 2015 档案
摘要:首先,先简单介绍,线程池的工作原理。1.他自身拥有一定数量的线程数组 threads,处于等待状态,等待唤醒(通过条件变量)2.拥有一个任务队列 m_tasks,存储用户的任务,有新任务以后,唤醒线程,取出任务,通过回调函数的方式调用任务,执行完以后继续等待。使用情况:线程池,适用于会话简短的情况下...
阅读全文
摘要:int add(int a,int b){ return a+b;}第一种,c语言通用。定义一个process_job函数指针类型,返回值为 int ,函数参数为int a,int b。使用用两种方法。 typedef int (*process_job)(int a,int b); ...
阅读全文
摘要:1.使用函数对象,可以让函数变得有状态。而且可以在运行期再初始化。2.函数对象通常比寻常函数速度快。templatevoid add(int& elem){ elem += theValue;}class AddValue{private: int theValue;public: ...
阅读全文
摘要:快速排序法事应用最广泛的排序算法之一,最佳情况下时间复杂度是O(nlogn)。但是最坏情况下可能达到O(n^2)。说明快速排序达到最坏情况的原因。并提出改善方案并实现之。答:最坏情况就是,每次分都分出有一部分只有一个元素的。这样T(n) = n + T(n-1) = O(n*n);最好的情况下...
阅读全文
摘要:复杂度为O(nlogn),辅助空间1,属于不稳定的排序。存储的实际是数组,但是把他当做二叉树来处理。了解一下大根堆和小根堆,大根堆就是指,父节点大于子节点的“二叉树”序列。n个关键字序列Kl,K2,…,Kn称为(Heap),从数组上看就是,ki>=k(2i)且ki>=k(2i+1)(1≤i≤ n/2...
阅读全文
摘要:C++ 比较烦恼的是内存的管理,new是简单,不够,delete偶尔就会忘记。或者说,出现,多个对象共享多一个内存,一个delete以后,导致其他也不能用的不良情况,所以就跑出了一个智能指针来进行管理。设计需求:1.该智能指针能接受各种类型的指针 -- 使用模板2.智能指针需要知道该对象有多少个人在...
阅读全文
摘要:今日发现要使用堆,然后priority_queue 使用的恰好是堆,默认是大根堆,这样的话,如果遇到需要用到大根堆,小根堆来处理问题的时候,可以使用这个结构。常用方法与队列差不 push(),pop(),top()上一部分代码,可以看出默认比较是 less 所以是大根堆,默认的话,里面的容器是vec...
阅读全文
摘要:一般来说,我们会用time做这些事情,一个是,获取日期,一个是计算某段代码的运行时间。额,这是vs2008的。C++11有更好的精度。1.运行时间,clock_t单位是(ms),转为s 要/CLOCKS_PER_SEC(1000)#include #include #include void pri...
阅读全文
摘要:这个就涉及效率的问题,怎么要写,才会尽可能的少调用构造函数。先设计如下的类class tempTest{public: tempTest(){ cout <<"hello tempTest() "<<count++ << endl; } tempTest(tempT...
阅读全文
摘要:首先认识3种拷贝构造函数:1.默认的拷贝构造函数;2.自己定义的拷贝构造函数;3.move拷贝构造函数;typedef struct MyTest{ int a; int b; float c; int * d; MyTest ():a(1),b(2),c(2.2){ ...
阅读全文
摘要:转自:http://blog.csdn.net/bizhu12/article/details/68321931) 不要在线程函数体内操作MFC控件,不要再线程里面调用UpdateData函数更新用户界面,而应该尽量采用发送消息的方式,在主线程的消息响应函数中操作控件;2)不建议采用SendMess...
阅读全文
摘要:近期突然想到,一道珠海笔试题,让你写atm机的逻辑,当时想多了,以为重点是让你写清楚其中的事务互斥关系,当时也忘记数据库是否会自动互斥,从而不会出现脏数据。所以就敲了个代码实践了下。例子还是老例子.....卖票..不会卖出脏数据为好。线程函数:static DWORD WINAPI Ticket1(...
阅读全文

浙公网安备 33010602011771号