Template Method模板方法模式
摘要: Template模式是很简单模式,但是也应用很广的模式。如上面的分析和实现中阐明的Template是采用继承的方式实现算法的异构,其关键点就是将通用算法封装在抽象基类中,并将不同的算法细节放到子类中实现。Template模式获得一种反向控制结构效果,这也是面向对象系统的分析和设计中一个原则DIP(依赖倒置:Dependency Inversion Principles)。其含义就是父类调用子类的操...
阅读全文
posted @
2009-09-29 19:54 AlexusLi 阅读(99) |
评论 (2) 编辑
C/C++中的 快速排序算法 STL
摘要: void QuickSort::QuickSort_Sort(int low,int high){ int Pivot_Key=Int_Vector[low],i=low,j=high; while(i<j) { while(i<j&&Int_Vector[j]>=Pivot_Key) { j--; } if(i<j) { Swap_Value(I...
阅读全文
posted @
2009-09-19 05:39 AlexusLi 阅读(420) |
评论 (0) 编辑
C/C++中的 堆排序算法 STL
摘要: #include "StdAfx.h"#include "HeapSort.h"void Swap_Value(int &lhs,int &rhs);HeapSort::HeapSort(void){}HeapSort::~HeapSort(void){}void HeapSort::Heap_Sort_Init(std::vector<int> _Int_Vector...
阅读全文
posted @
2009-09-19 05:38 AlexusLi 阅读(209) |
评论 (0) 编辑
C/C++中的 归并算法 STL
摘要: #include "StdAfx.h"#include "MergeSort.h"typedef vector<int> IntDefVector;MergeSort::MergeSort(void){}MergeSort::~MergeSort(void){}void MergeSort::MergeSort_Ini(std::vector<int> _Int_Vecto...
阅读全文
posted @
2009-09-19 05:37 AlexusLi 阅读(93) |
评论 (0) 编辑
C/C++实现如下 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++)
摘要: from:http://www.cnblogs.com/architect/archive/2009/05/06/1450489.html//归并排序中之并//Updatedbyzivsoftat05/06/2009int*Merge(int*a,intaLength,int*b,intbLength){//合并结果指针int*result;//初始化结果指针result=newint[aLeng...
阅读全文
posted @
2009-09-19 04:58 AlexusLi 阅读(246) |
评论 (0) 编辑
插入排序&&二分插入排序
摘要: #include "StdAfx.h"#include "Insert_Sort.h"Insert_Sort::Insert_Sort(vector<int> _Vector,int _Size){ //assign the value to the private member for(int i=0;i<_Size-1;i++) { IntVector.push_back(...
阅读全文
posted @
2009-09-17 15:35 AlexusLi 阅读(260) |
评论 (1) 编辑
基于 TCP (面向连接)和无连接UDP协议的 socket 套接字编程
摘要: 服务器端程序: 1. 创建套接字(socket); 2. 将套接字绑定到一个本地地址和端口上(bind); 3. 将套接字设为监听模式,准备接收客户端请求(listen); 4. 等待客户端请求,当请求到达后,接受连接请求,返回一个新的对应于此次连接的套接字(accept); 5. 用返回的套接字和客户端进行通信(send/recv); 6. 返回,等待另一客户请求; 7. 关闭套接字; 客户端程...
阅读全文
posted @
2009-09-16 19:46 AlexusLi 阅读(418) |
评论 (1) 编辑
如何成为Linux平台C语言程序员(zhuan)
摘要: 目标: 成为合格的Linux平台C语言程序员 技能: 掌握C语言基本语法,掌握Linux平台系统调用,熟悉Linux平台开发流程,掌握anjuta以及glade使用方法,了解kernel结构编写高质量程序。 步骤: 1、学习C语言语法 预计时间:30天 参考书籍 http://man.lupaworld.com/content/develop/c&c++/c/C_program_lan...
阅读全文
posted @
2009-09-14 16:16 AlexusLi 阅读(64) |
评论 (0) 编辑
网络编程之同步,阻塞,异步,非阻塞
摘要: 同步:函数没有执行完不返回,线程被挂起 阻塞:没有收完数据函数不返回,线程也被挂起 异步:函数立即返回,通过事件或是信号通知调用者 非阻塞:函数立即返回,通过select通知调用者同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其 实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部...
阅读全文
posted @
2009-09-13 16:21 AlexusLi 阅读(84) |
评论 (0) 编辑
Socket 怎么去的本机Ip地址。
摘要: // GetHostIpAdd.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>#include <Winsock2.h>int _tmain(int argc, _TCHAR* argv[]){ //////////////// // Initialize windows sockets API. As...
阅读全文
posted @
2009-09-13 08:32 AlexusLi 阅读(133) |
评论 (0) 编辑
WinSock学习笔记(二)
摘要: 与socket有关的一些函数介绍 1、读取当前错误值:每次发生错误时,如果要对具体问题进行处理,那么就应该调用这个函数取得错误代码。 int WSAGetLastError(void ); #define h_errno WSAGetLastError() 错误值请自己阅读Winsock2.h。 2、将主机的unsigned long值转换为网络字节顺序(32位):为什么要这样做呢?因为不同的计...
阅读全文
posted @
2009-09-12 04:16 AlexusLi 阅读(32) |
评论 (1) 编辑
WinSock学习笔记
摘要: Socket(套接字) ◆先看定义:typedef unsigned int u_int;typedef u_int SOCKET; ◆Socket相当于进行网络通信两端的插座,只要对方的Socket和自己的Socket有通信联接,双方就可以发送和接收数据了。其定义类似于文件句柄的定义。 ◆Socket有五种不同的类型: 1、流式套接字(stream socke...
阅读全文
posted @
2009-09-12 04:15 AlexusLi 阅读(131) |
评论 (0) 编辑
MFC的进程和线程
摘要: Win32的进程和线程概念 进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。 线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并发地执行;一个进程的所有线程共享它的虚拟地址空间、全局变量...
阅读全文
posted @
2009-09-09 21:22 AlexusLi 阅读(124) |
评论 (0) 编辑
对进程、线程、应用程序域的理解
摘要: 前几天面试的一道题是谈谈进程、线程、应用程序域的区别,虽然能说上来几点,但感觉理解的很肤浅、很不透彻,闲暇时从书箱里翻出尘封已久的《操作系统》(还好,毕业时偶没舍得卖),翻了翻进程的那一章。看之前我列出了下面三个问题: 1. 这些概念(技术)出现的背景以及要解决的问题 (要干什么) 2. 它们之间的联系与区别 3. 三者之间的发展脉络 进程的出现: (复习功课嘛,就把相关的内容都看看了,哎,都忘...
阅读全文
posted @
2009-09-09 03:26 AlexusLi 阅读(57) |
评论 (0) 编辑
多线程处理:何时使用同步类
摘要: MFC 提供的多线程类分为两类:同步对象(CSyncObject、CSemaphore、CMutex、CCriticalSection 和 CEvent)和同步访问对象(CMultiLock 和 CSingleLock)。 当必须控制对资源的访问以确保资源的完整性时,使用同步类。同步访问类用于获取对这些资源的访问权。本主题介绍各个类的适用情况。 若要确定应使用的同步类,请询问以下一系列问题: ...
阅读全文
posted @
2009-09-08 19:36 AlexusLi 阅读(47) |
评论 (0) 编辑
没有找到MSVCR90D.dll
摘要: 没有找到MSVCR90D.dll,因此这个应用程序未能启动。重新安装应用程序可能修复此问题。 网上一人说是微软BUG,具体原因不清楚。 如果把项目放在FAT32分区,那么这样操作: 英文版:Project Properties -> Manifest Tool-> Use FAT32 Work-around -->Yes 中文版:项目-->项目属性-->配置属性--&...
阅读全文
posted @
2009-09-08 15:07 AlexusLi 阅读(442) |
评论 (0) 编辑
CMM各级别代表的含义
摘要: 在初始级,企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。 第二级:可重复级 在这一级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。基于过往的项目的经验来计划与管理新的项目。 第三级:定义级 在这一级,有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时,这些过程是...
阅读全文
posted @
2009-09-07 20:43 AlexusLi 阅读(27) |
评论 (0) 编辑
指针与引用的区别:指针与引用
摘要: 引用是一种没有指针语法的指针.与指针一样,引用提供对对象的间接访问. --《c++ primer》p29 虽然引用也可以被用作一种指针,但是象对指针一样用一个对象的地址初始化一个引用却是错误的。 例如: int i=0; int &refi=i; //ok,refi指向一个i的引用 //int &refi=&i; 错误,不能用指针初始化引用 一旦引用已定义,它就不能再指向...
阅读全文
posted @
2009-09-05 20:39 AlexusLi 阅读(58) |
评论 (1) 编辑