- 博客(85)
- 资源 (4)
- 收藏
- 关注
原创 随手记
好久不工作//数组指针{ //要声明指向数组类型的指针,必须使用括号 int(*arrPtr)[10] = NULL; //一个指针,它指向一个有10个int元素的数组 //如果没有括号,则声明 int*arrPtr[l0]; //表示 arrPtr 是一个具有 10 个 int 类型指针的数组。 int matrix[3][10] = { 0 }; arrPtr = matrix; // 使得arrPtr指向矩阵的第一行 (*arrPtr)[0] = 5; arrP
2021-04-02 20:58:35 165
原创 shell脚本
linux监控一个程序:#!/bin/bashwhile truedo procnum=$(ps -ef | grep GameTransferTF | grep -v grep | wc -l) echo "process tf num = ${procnum}" if [ $procnum -eq 0 ]; then ...
2019-08-13 11:15:55 264
原创 python-highlight
## c/c++ high-light by tianzimk 2016-3-20 def high_light(strpath): line_num = getline(strpath) fr = open(strpath, "r") fw = open(strpath + ".html","w") fw.write("") fw.write("") fw.write("")
2016-03-20 23:42:20 1969
原创 迭代器模式
UML类图上图: Iterator:定义迭代器访问和遍历元素的接口; ConcreteIterator:具体迭代器的实现; Aggregate:定义的容器,创建相应迭代器对象的接口; concreteAggregate:具体的容器实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例。使用场合 访问
2016-03-13 22:50:03 923
原创 python线程setDaemon
在python中,主线程结束后,会默认等待子线程结束后,主线程才退出,如下:#coding=utf-8import threadingimport timeclass mythread(threading.Thread): def __init__(self): super().__init__() def run(self): for i in range(5):
2016-03-05 12:05:51 1515
原创 python简单多线程
#coding=utf-8import threadingimport randomfrom time import sleepdef task1(): print(threading.current_thread().getName() + " start.") for i in range(5): print("i: " + str(i)) sleep(1) prin
2016-03-03 22:38:39 937
原创 高斯模糊算法
一维正态分布函数:对应的曲线如下:其实就是将某一像素点一定半径内的rgb值按照以上权重分布求出此点的rgb值。图片像素是二维矩阵,修改如下:对一个二维的像素矩阵可以分别在水平与垂直方向进行一维高斯模糊其效果等同与二维高斯模糊效果,速度更快。测试图片如下:代码如下:void CGSmooth::generateGauss
2016-01-24 16:59:49 2255
原创 二分查找
二分查找比较简单:templateint binary_search(T array[],int len, T value){ int left = 0, right = len -1; while(left <= right) { int index = (left + right)/2; if(value == array[index]) { return in
2016-01-21 20:25:34 678
原创 QThread定时器
如何在子线程中启动定时器:MyThread::MyThread(QObject *parent) : QThread(parent){ printf("[%d] construct\n",this->currentThreadId());}MyThread::~MyThread(){ delete timer;}void MyThread::timedone(){ p
2016-01-07 13:44:45 3031
原创 Python
今天开始学习脚本语言,写了一个简单的程序做测试^_^查询北上广深的天气:import urllib.requestimport jsondef get_city_id(_city): city = ["北京",'上海','广州','深圳'] id = ['101010100','101020100','101280101','101280601'] index = 0 for
2015-12-18 17:36:08 845
原创 memcached简单分析
多线程的memcached很简单,一个监听主线程,N个工作线程(event worker),实际上每一个线程都是一个单独的libevent实例,都有自己的event_base。 a.主线程负责监听、接收、CQ_ITEM的分发 b.工作线程负责已注册连接的读写事件处理。网上找了一个图如下,源地址不明:1.子线程初始化:bool MyService::thread_init
2015-11-26 00:04:29 1061
原创 LIBMAD解码播放器
简单的libmad封装类LibMP3:// LibmadMP3.h: interface for the LibmadMP3 class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_LIBMADMP3_H__0363C03A_CE0B_45E2_BA2D
2015-08-07 00:10:57 2083
原创 echo server
1.The libevent API provides a mechanism[机制] to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support cal
2015-08-06 21:41:52 1412
转载 清明过后小记
又一次来到了帝都bj,zf之行像是做了一个漫长梦一样,梦中有着快乐和忧伤,有些地方、有些人的记忆注定伴随终身。离职了,哈哈挺任性的(连面试官都问我为什么不骑驴找马),不管下一份工作怎么样,选择了就不后悔。今天跑了2家公司,一家汽车生产自动化的一家互联网型的,都不太理想,第一家我不想去,第二家要求太高我应该去不了。明天该去哪呢,我还不确定,你呢,我更不确定。献上一张照片拍摄于
2015-04-07 23:46:59 801 1
原创 virtual析构函数
今天面试回答的不好,最终还是因为C++基础不好,而且没有做好准备。虚析构函数其实比较简单,C++多态的一个特性,看如下简单示例:class base{public: base() { cout<<"base constructor..."<<endl; } virtual ~base() { cout<<"base discontructor..."<<endl; } virtu
2015-04-07 23:18:25 964
原创 strstr实现
自己实现的很不好:char* str_str(const char* s1,const char* s2){ assert(s1 != NULL && s2 != NULL); while(*s1++ != '\0') { if(strncmp(s1,s2,strlen(s2))==0) { return (char*)s1; } } return NULL;
2015-04-06 12:43:57 774
转载 QuickSort
基本思路: 1.将待排序数据存入一维数组中,然后以第一个值为基准值。起初i指向第一个元素,j指向最后一个元素之后的位置。 2.分别从两端遍历数组,直到i所指向的值比基准值大,以及j所指向的值比基准值小时,分别停止遍历,然后交换i,j所指向的值。 3.重复步骤2,直到i >= j,然后交换p和j所指向的值,此时序列别分隔成两部分,基准值右边的值都比基准值
2015-04-05 23:09:28 791
转载 QObject 的构建/销毁顺序
当QObject在堆上创建(也就是说,使用new操作符),同时也会以任意顺序创建一棵树;稍后,树中的对象也会以任意顺序被销毁。当树中的对象被删除掉时,如果这个对象有父对象,析构函数会自动将其从父对象的列表中删除。如果这个对象有子对象,析构函数会自动删除掉所有子对象。不管析构的顺序如何,没有QObject被删除两次。 当QObject在栈上被创建,其行为也是类似的。按理说,析构顺序也不会有
2015-03-29 10:05:39 2303
原创 了解libevent
在libevent.org官网下载libevent-2.0.22-stable.tar.gz发布包。环境:win7+VS2010Microsoft visual studio命令提示(2010)下,进入libevent-2.0.22-stable目录,编译:nmake /f Makefile.nmake生成libevent.lib、libevent_core.lib、libevent_
2015-03-14 01:14:09 699
原创 Copy Constructor Function
拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量。
2014-05-08 22:20:38 934
转载 转ACE_Svc_Handler
ACE_Event_Handler: 事件处理器,是ace中所有反应式事件处理器的基类。接口比如Handle_input,Handle_timeout,Handle_signal,Handle_close等。 ACE_Svc_Handler是ace的同步和反应式数据传输及服务处理机制的基础,ACE_Svc_Handler派生于ACE_Task,而ACE_Task派生于ACE_Eve
2014-05-05 00:50:06 2129
转载 ACE反应器(Reactor)2
看到ACE中反应器(Reactor) 用于事件多路分离和分派的体系结构模式 一章中说:在从反应器注销,以及handle_close()挂钩方法被调用时,该类将自己删除。但是,必须保证MyEventHandler总是动态分配的(即是从ACE_Event_Handler派生出的类一定是new出来的,而不是stack上临时变量或全局变量。),否则,全局内存堆可能会崩溃。确保类总是动态地创建的一种办法是
2014-03-22 01:58:39 923
原创 ACE守卫Guard类属
ACE中的守卫类是一种模板,它通过所需锁定机制的类型来参数化。 守卫类的对象定义一个代码块,在其上获取一个锁,在退出次代码块时,锁被自动释放(对象的构造器获取锁,析构器释放锁)。 ACE_Guard,ACE_Read_Guard,ACE_Write_Guard。#include "ace/Synch.h" ///sleep#include "a
2014-03-21 17:19:08 1940
转载 MFC非模态对话框
1.首先利用资源编辑器创建对话框资源,并针对该对话框资源定义一个对话框类:class CTestDlg : public CDialog2.创建话话框对象模态对话框的创建: 如: CTestDlg dlg; dlg.DoModal();非模态对话框创建: 如: CTestDlg dlg; dlg.Create(
2014-02-13 01:11:01 1600
转载 Singleton模式
1. Singleton的实现:Singleton不可以被实例化,因此将其构造函数声明为protected或者直接声明private。 2. Singleton模式经常和Factory(AbstractFactory)模式在一起使用,因为系统中工厂对象一般来说只要一个。 3. 通过维护一个static的成员变量来记录这个唯一的对象实例,通过提供一个static的借口Instance来获
2014-02-11 01:30:39 816
原创 VS2010环境变量
WIN7下删除用户后,VS2010可以F5运行程序,但是如果直接打开程序,则提示缺少QtCored4.dll库,系统变量是有的,重新设置用户变量即可(重启编译器),无需重启系统,设置系统变量才需重启系统。 用户变量Path :D:\Qt\4.8.4\bin 系统变量QTDIR:D:\Qt\4.8.4
2014-01-22 01:01:30 1322
原创 CArchive序列化测试
循环序列化的问题,一直很疑惑。int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){ CFile devStateFile; BOOL bSuc=devStateFile.Open("serilized.dat",CFile::modeCreate | CFile::modeWrite); if (bSuc) { CArchive
2014-01-10 16:37:15 971
转载 还没有睡觉
刚刚把明天的绩效考核报告写好(写的很烂,虽然感觉自己做了很多而且每天都很忙),现在差不多凌晨2点了。 2014年已经开始,自己已经25岁了,虽然准确的计算应该为24,13年-7月份开始工作,2个月转正,直接发配HuJiu,原本预定为元旦返回帝都bj,看势头回不去了,不回去也好,省得每天吸收雾霾挤地铁,再说,那个恶梦开始的地方,哈哈,不过,恶梦也是梦,我把它定义为梦想的一种,这样的话,
2014-01-06 02:30:27 758
原创 QList隐式共享
隐式共享机制(implicit sharing),也叫做copy on write。顾名思义,就是说,在内容有变动的情况下才对容器中的数据结构做复制,否则仅做共享。QT中所有的容器类都支持隐式共享,而无论是Java风格还是STL风格的迭代器,使用只读迭代器时,背后也都使用到了隐式共享机制,以增加读取的效率。比如:QListint main(int argc, char *argv[]){
2014-01-05 22:36:34 2965 3
转载 ACE事件处理器
下面的例子创建了两个具体事件处理器。第一个具体事件处理器My_Accept_Handler用于接受和建立从客户到来的连接。另一个事件处理器是My_Input_Handler,它用于在连接建立后对连接进行处理。因而,My_Accept_Handler接受连接,并将实际的处理委托给My_Input_Handler。#include "ace/Reactor.h"#include "ace/SOC
2013-12-13 02:00:40 1425
转载 反应堆模式ACE_Reactor类
ACE中的反应堆与若干内部和外部组件协同工作。其基本概念是反应堆构架检测事件的发生(通过在OS事件多路分离接口上进行侦听),并发出对预登记事件处理器(event handler)对象中的方法的“回调”(callback)。该方法由应用开发者实现,其中含有应用处理此事件的特定代码。于是用户(也就是,应用开发者)必须: 1.创建事件处理器,以处理他所感兴趣的某事件。
2013-12-10 00:20:48 1690
原创 CArchive序列化
实现序列化的类必须满足下列条件: 1. 该类需要从CObject类派生(可以是间接派生); 2. 在类中中进行DECLARE_SERIAL宏定义; 3. 类存在有缺省的构造函数; 4. 类中实现了Serialize()函数,并且在其中调用基类的序列化函数; 5. 使用IMPLEMENT_SERIAL宏指明类名及版本号;
2013-12-07 00:31:11 1944
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人