自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

vbanglev的小窝^_^

奔跑的蜗牛

  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

转载 typedef的用法和陷阱

用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb;

2008-04-15 11:47:00 723

原创 c++&COM...

  C++的主要目标是允许程序员建立用户自定义类型,而且可以在原始实现环境之外重复使用,就是我们今天见到的类库,这样虽然重用比较容易但是重新实现却比较难,人家写的贝,而且要编写一个重用性很好的C++类非常的困难.C++库一直都以源代码的形式分发,这样编译好的可执行代码将成为客户应用中不可缺少的,代码的重复引用浪费了程序的空间,所以出现了DLL,但当我们在DLL中发现一个错误时,我们就要面对C++的

2007-06-16 12:39:00 974

原创 完成端口学习笔记

“完成端口”模型是迄今为止最为复杂的一种I / O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的C P U数量的增多,应用程序的性能也可以线性提升,才应考虑采用

2007-03-14 12:57:00 1545

原创 STL之stack&queue容器(笔记)

模版类stack,它是一个后进现出的容器适配器--即自己不直接维护被控序列的模版类,而是它存储的容器对象来为它实现所有的功能;typedef stack>> mycont;默认的参数中容器是用deque实现的;被包含的容器要满足提供value_type,size_type,empt,size,push_back,pop_back;可选择的容器有list,deque,vector;要求有最快

2007-02-28 20:00:00 1695

原创 STL之map&multimap容器(笔记)

容器map&multimap控制的长度为N的序列都是以有N个节点的有序二叉树的方式存储的,每个节点中存储一个类型为pair的单个元素;与set不同只有const key这部分猜参与次序比较,而set是整个元素的值一起参加比较; typedef map,allocator>> mycont;构造函数map() 声明一个按pred()排序的空映射;map(pr) 声明一个按函数对象

2007-02-28 15:44:00 3009

原创 了解STL中相等和等价的区别

STL充满了比较对象是否有同样的值。比如,当你用find来定位区间中第一个有特定值的对象的位置,find必须可以比较两个对象,看看一个的值是否与另一个相等。同样,当你尝试向set中插入一个新元素时,set::insert必须可以判断那个元素的值是否已经在set中了。find算法和set的insert成员函数是很多必须判断两个值是否相同的函数的代表。但它们以不同的方式完成,find对“相同”的定

2007-02-27 20:25:00 4037

原创 STL之set&multiset容器(笔记)

这两个容器控制的长度为N的序列是有N节点的红黑树存储的;集合中所有元素都是独一无二的,多重集合中允许存在副本。模版类set multiset map multimap被称为关联容器,他们都把一个键值于一个元素对应起来,并用该键来查找,插入,删除等操作,他们对插入删除操作取得了比线型时间更好的对数时间效果,当元素增多时他们内部使用的是二分查找,效率更加高效;但如果我们不需要这种额外的效率,就可以

2007-02-27 20:03:00 3006

原创 STL之deque容器(笔记)

  deque容器所控制的长度为N 的序列是以统一的长度为B的块组成的,也就是说他跟向量一样支持常量时间内存取任意元素,他与vector是唯一可以随机存取的容器。比vector好的地方是它可以在容器的头部以常量的时间插入或删除元素,因为它的有效元素是从一个偏移量OFF开始的。但通常下每个元素多一个指针的存储空间,虽然可以任意存取元素,但它需要的时间是线性的,向量是常量它可以像列表一样实现先

2007-02-26 11:54:00 2880

转载 STL算法之二

标准库为容器类型定义的操作很少,并没有为每个容器实现更多的操作。因为这部分操作可以抽象出来为所有的容器工作,那就是泛型算法。所谓“泛型”是指这些算法可以应用于多种容器类型上,而容器内的元素类型也可以多样化。标准库提供了100多个泛型算法,主要定义于头文件中,还有一组泛化的算术算法定义于头文件中。    大多数泛型算法是工作于容器的一对迭代器所标识的范围,并完全通过迭代器来实现其功能。这段由

2007-02-22 17:34:00 1440 1

转载 STL中的remove问题

我将从remove的复习开始这个条款,因为remove是STL中最糊涂的算法。误解remove很容易,驱散所有关于remove行为的疑虑——为什么它这么做,它是怎么做的——是很重要的。这是remove的声明:templateForwardIterator remove(ForwardIterator first, ForwardIterator last, const T&

2007-02-22 10:40:00 8855

原创 STL之list容器(笔记)

容器list,所控制的长度为N的序列是以一个有着N个节点的双向链表来存储的,支持双向迭代器。优势:可以在链表中随意的插入和删除元素或是子链表,所需的仅是改变前后指针。劣势:在定位操作中比如查找和随即存取,时间是线性增加的,而且在存储上每个节点还有前向和后向两个指针。异常:模版类list的另外一个有点是在异常处理方面,对任何容器来说,器成员函数在执行中抛出的异常,使容器本身处于一种一致的

2007-02-22 10:20:00 1216

转载 辩论赛

女神殿: 女神:撒加,因为最近圣域有一种传言说,当初是你们放水,星矢他们才得以闯过12宫的。(众:传言???根本就是事实嘛!) 撒加:…… 雅典娜:青铜们很不服气呢!所以,为了看青你们的真实水平,我决定,让你们再比一次。 撒加:(内心:嘿嘿嘿~~~,这回我们不会在那么轻易放过这群小鬼的。) 雅典娜:不过,圣战都结束了那么多年了,再发动战争好象不是很好。那么,就来一场文斗吧! 星星:砂纸女神

2007-02-21 19:17:00 3050

转载 打败圣斗士的方法

1,因为对圣斗士用过的招式第二次就不管用了,所以,你必须练成9999999……种拳法,让星矢们搞不清哪个才是你的绝招。如果全部用完了,他们还没有死的话,千万不要慌张,请重复一次。因为那条定律已经被破解了。谁还记得你打过什么招式啊?? 2、学海皇波塞冬,瞧人家多聪明,一双眼睛眨啊眨的,都快眨到抽筋了,对星矢照样有效,别听信他什么“我是神,你们是人”的鬼话,真正原因是波塞冬从来不叫出他的招式名

2007-02-21 19:16:00 9449 1

转载 圣域娱乐特快

大家好!我是圣域特别记者真红。喜欢流行乐又喜欢圣斗士的人有福了!在圣域,日前,由沙加、加妙和艾欧利亚三人组成的“圣域男孩”(SAINT AREA BOYS简称SAB)演唱组终于推出了他们的第一张单曲《努力吧》。该单曲由三人共同创作,其中沙加为键盘和做词,加妙弹吉它兼做曲,艾欧利亚是鼓手和编曲,他们以自演自唱,充满轻快的风格马上在歌坛走红,《努力吧》一下子进入排行榜第一位,这两周来一直居高不

2007-02-21 19:13:00 5565

转载 雅典娜暴利烹饪系列(上)

刨冰事件 田中大人曾经问过:和平是无聊的的代名词吗?答:不是。 今天的圣域在纱织的领导下,依然过着比战时更加热闹的日子。  早晨出门时,修罗觉得自己是这个世界上最为幸福的人。为了庆祝他拿到特级厨师证书,女神订购了最新的微波炉和冰箱装备到他的厨房里,吹着口哨出门采购的修罗,觉得今天的阳光格外的灿烂。  修罗出门,一般总是把厨房交给卡妙照顾,卡妙是全圣域厨艺仅次于修罗的人,尤其擅长制作冷饮,其成品清凉

2007-02-21 19:05:00 6957

转载 雅典娜暴利烹饪系列(下)

"呀--呀--呀--"爬到冰箱上的纱织吓的花容失色,"快点把那些土鳖拿开啦----" 端着一盆螃蟹的迪马斯头上好几个"加号":"你叫个什么劲呀!!!不是你要学煮螃蟹,叫我下河给你捞的吗?!!这是螃蟹!!!螃蟹!!!!" 纱织眼睛里无辜的泪水在打转:"骗人!螃蟹明明是红色的~~~" "那是煮熟的好不好!!!"迪马斯已经在昏倒的边缘,"快拿去!!!" "不要呀~~~~好可怕呀~~~~~"玉手一挥,螃蟹

2007-02-21 19:02:00 5500

转载 雅典娜恋爱计划

众所周知,圣域总是经济危机,也许是因为纱织小姐善于领导战争却不能发展经济。所以公元某年某月某日,关于解决圣域财政赤字的第三届圣斗士代表大会终于召开。请关注偷拍到的会议实录:地点:教皇厅女神看了看到会的圣斗士们,发现人数只有九人,比预定少了六人,怒:"卡妙、米罗、阿鲁迪巴、冰河、紫龙,还有对我最最忠心的星矢,为什么没有来?撒加,你这个教皇怎么当的?我要扣你两个月的薪水!" 撒加(扣薪水?我已

2007-02-21 18:57:00 10789

原创 钩子函数说明书

一、基本概念:    钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。    钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序

2007-02-20 18:58:00 2845 1

原创 底层DLL屏蔽任意键

// keyboard.cpp : Defines the entry point for the DLL application.//#include "stdafx.h"#include "keyboard.h"#include "stdlib.h"#include "winuser.h" //定义了PKBDLLHOOKSTRUCT#pragma data_seg (".mydata"

2007-02-20 18:56:00 2204

原创 STL之vector容器(补充)

标准模版类也定义了一个模版类basic_string,basic_string得一个模版参数是元素类型。他们之间得不同之处:basic_string得构造函数和析构函数只能在C程序中声明得类型,可以通过逐位复制得方式来位这样得对象赋值。vector则可以在其中包含任意类型。basic_string参数中需要一个traits类来为它得另一个模版参数,traits指定了如何移动或是比较序列中得

2007-02-14 16:57:00 2350

原创 C++精华(STL)学习笔记之算法

是STL中最大得一个文件,它是由一大堆模版函数组成得。这些函数包括:max 检测两个元素得较大值min 检测两个元素得较小值swap 交换两个已储存得值iter_swap 交换两个由迭代器描述得值max_element 检测一个序列中较大得值min_element 检测一个序列中较小得值equal 比较两个序列是否相等lexicographical_compare

2007-02-10 18:41:00 2101 1

原创 C++精华(STL)学习笔记之迭代器

utility中只有模版类pair,和一些与之相关联得模版操作符,该模版类用来将两个对象合并为一个对象,当你想要一个函数返回两个值得时就比较方便了。其中模版函数make_pair可以在必要时产生一个pair对象,该函数在检测参数时忽略掉所有CONST属性,所以不能依赖他产生包含一个或多个常量成员对象得pair对象。测试文件: #include "iostream"#include "a

2007-02-10 13:29:00 3271

原创 从单线程到多线程之线程通信

线程之间通信的两个基本问题是互斥和同步。  线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。线程互斥是指对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线

2007-02-08 10:43:00 1240

原创 从单线程到多线程之线程控制

WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作,这些操作都依赖于WIN32提供的一组API和具体编译器的C运行时库函数。  1.线程函数  在启动一个线程之前,必须为线程编写一个全局的线程函数,这个线程函数接受一个32位的LPVOID作为参数,返回一个UINT,线程函数的结构为: UINT ThreadFunction(L

2007-02-07 17:50:00 1463

原创 从单线程到多线程

进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。  线程(Th

2007-02-07 16:02:00 2502

原创 I/O重叠结构发送端代码

// client.cpp : Defines the class behaviors for the application.//#include "stdafx.h"#include "winsock2.h"#include "client.h"#include "clientDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FIL

2007-02-06 21:47:00 1925

原创 I/O重叠结构服务器代码

 // server.cpp : Defines the class behaviors for the application.//#include "stdafx.h"#include "winsock2.h"#include "server.h"#include "serverDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FI

2007-02-06 21:42:00 1864

原创 SOCKET之重叠I/O模型

首先要想再套接字上使用重叠I/O模型,首先必须使用WSA_FLAG_OVERLAPPED 这个标志创建套接字WSASocket(AF_INET,SOCKET_STREAM,0,NULL,0,WSA_FLAG_OVERLAPPED);如果创建套接字的时候使用socket 而不是WSASocket函数那默认会设者WSA_FLAG_OVERLAPPED标志随后将一个WSAOVERLAPPED

2007-02-02 18:24:00 2554

原创 WINSOCK I/O之WSAAsysncSelect

套接字模式有两种模式一种是锁定模式,一种是非锁定模式SOCKET sock;char buff[256];int done=0;while(!done){    nBytes=recv(sock,buff,65);    if(nBytes==SOCKET_ERROR)    {        printf("recv failed with error %d/

2007-02-01 14:31:00 1844

原创 SOCKET基础学习笔记

 PS:为了区分SOCKET函数版本,Winsock2版本前加WSA前缀,例如:socket WSASocket;对采用Winsock 1的应用而言,必须有Wi n s o c k . h包容文件,而对使用Winsock 2的应用而言,则需要Winsock 2.h包容文件。int WSAGetLastError(void);发生错误之后调用这个函数,就会返回所发生的特定错误的完整代码。一旦

2007-01-31 23:19:00 1318

原创 地址家族名字解析学习笔记

Wi n s o c k中,应用通过S O C K A D D R _ I N结构来指定I P地址和服务端口信息,该结构的格式如下:struct sockaddr_in{short sin_family;u_short sin_port;struct in_addr sin_addr;char sin_zero[8];};s i n _ f a m i l y字段必

2007-01-31 23:17:00 2000

原创 命名管道学习笔记

“命名管道”或“命名管线”(Named Pipes )是一种简单的进程间通信( I P C)机制.命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。命令管道是围绕Wi n d o w s文件系统设计的一种机制,采用“命名管道文件系统”(N a m e dPipe File System, NPFS)接口。因此,客户机和服务器应用可

2007-01-31 23:16:00 2161

原创 邮槽学习笔记

Microsoft Windows NT、Windows 2000、Windows 95和Windows 98(含第二版)—但不包括Windows CE—提供了一种简单的单向“进程间通信”(interprocess communication,I P C)机制。这个机制的名字非常古怪,叫作“邮槽”(M a i l s l o t)。通过邮槽,客户机进程可将消息传送或广播给一个或多个服务器进程。在同

2007-01-31 23:14:00 4244

原创 重定向学习笔记

 重定向器通用命名规范UNC路径:/ / [服务器] / [共享名] / [路径]MUP是一种资源定位器,负责选择具体的网络提供者。WINDOWS最有特色的网络提供者成为“MICROSOFT网络用户”(MSNP)M S N P提供了一个特殊的重定向器,可直接与网络传送层和N e t B I O S打交道,以便在客户机与服务器之间建立通信,叫作“ L A N管理器重定向器”(LAN

2007-01-31 23:13:00 7078

原创 WINSOCK API 学习笔记

 要想获得系统中安装的网络协议的相关信息,调用这个函数W S A E n u m P r o t o c o l s即可,并像这样定义它:int WSAEnumprotocols{LPINT lpiprotocols,LPWSAPROCOL_INFO lpprotocolbuffer,LPDWORD lpdwbufferlength};返回的W S A P R O TO

2007-01-31 23:11:00 1262

原创 NETBOIS编程学习笔记

络基本输入/输出系统(Network Basic Input/Output System, NetBIOS)N e t B I O S扩展用户接口(NetBIOS Extended User Interface, NetBEUI)他同NETBOIS接口一起构成了一个完整的协议,对应OSI七层模式,NETBOIS主要工作在会话层和传输层。NETBOIS似的编程接口与协议无关,根据NETBOI

2007-01-31 23:08:00 2264

Effective STL简体中文版

C++标准模版库 简体中文

2008-02-16

空空如也

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

TA关注的人

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