03 2012 档案
摘要:vector成员函数函数表述c.assign(beg,end)c.assign(n,elem)将[beg; end)区间中的数据赋值给c。将n个elem的拷贝赋值给c。c.at(idx)传回索引idx所指的数据,如果idx越界,抛出out_of_range。c.back()传回最后一个数据,不检查这个数据是否存在。c.begin()传回迭代器重的可一个数据。c.capacity()返回容器中数据个数。c.clear()移除容器中所有数据。c.empty()判断容器是否为空。c.end()指向迭代器中的最后一个数据地址。c.erase(pos)c.erase(beg,end)删除pos位置的数据
阅读全文
摘要:#include <sstream>#include <string>using namespace std;//具体函数有些忘了,不过使用sstream转换数字肯定//比自己写好一些。因为可以写模板转换float数字。string int_to_string(int num){sstream<string > ss;ss << num;return ss.ToString();}//这是模板函数,可能语法上有不正确的地方,你可以查查书籍就可以了,//重要的不是语法,而是思想。template<class T>string num_t
阅读全文
摘要:要实现这个目标,非stringstream类莫属。这个类在头文件中定义, < sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。简单起见,我主要以stringstream为中心,因为每个转换都要涉及到输入和输出操作。示例1示范怎样使用一个stringstream对象进行从 string到int类型的转换 注意,使用string对象来代替字符数组。这样可以避免缓冲区溢出的危险。而且,传入参数和目标对象的类型被自动推导出来,即使使用了不正确的
阅读全文
摘要:strcpy函数,作用是将一个字符串的字符复制到另一个字符串中char*strcpy(char*destination,constchar*source){while(*destination++=*source++);//看这一句话写的,精炼间断而又让人一目了然//我用while写肯定是要三条语句,循环变量,赋值,递增,唉。。。这就是菜鸟啊return(destination-1);}strcat函数,作用是将一个串的内容追加到另一个串上char*strcat(char*target,constchar*source){char*original=target;while(*target)/
阅读全文
摘要:C++中的string 类 简单介绍前言: string 的角色1 string 使用1.1 充分使用string 操作符1.2 眼花缭乱的string find 函数1.3 string insert, replace, erase 2 string 和 C风格字符串3 string 和 Charactor Traits4 string 建议5 附录前言: string 的角色C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑
阅读全文
摘要:/*========================================================对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:sub1=a1a2a3sub2=a2a3a4sub3=a3a4a5例如,五位数20207可以拆分成sub1=202sub2=020(=20)sub3=207现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。输入输入由键盘输入,输入仅一行,为正整数K(0<K<1000)。输出输出到文件,输出文件的每一行为一个
阅读全文
摘要:#include "stdio.h"void strcut(char *s, char *sub,int m, int n) //用参数sub来保存结果,所以函数不用返回值了{int i;for (i=0;i<n;i++)sub[i]=s[m+i-1];sub[i]='\0';}main(){char ps[20]; //用来保存截取子串的必须是数组,不能是指针static char s[]="goodmorning";strcut (s,ps,3,4);printf ("%s\n",ps);}
阅读全文
摘要:传说这是一道很经典的面试题。很多童鞋都秉承正常人的思维,老老实实写下了倒转判断的代码。谁会想到用union呢?union有一个特性:其存放顺序是所有成员都从低地址开始存放。有没有一点灵感?其实什么是巧妙,就是利用融会贯通罢了。代码如下:?1234567891011121314151617181920212223#include <iostream>using namespace std;int checkCPU();int main(){if(checkCPU())cout << "你的CPU是小端机." << endl;else cou
阅读全文
摘要:下面为string.h文件中函数的详细用法,附加实例:1、strcpy 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(string, str1); printf("%s\n", string); return
阅读全文
摘要:string.h文件中函数的详细用法 下面为string.h文件中函数的详细用法,附加实例:1、strcpy 函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *strcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) { char string[10]; char *str1 = "abcdefghi"; strcpy(string, str1);printf("%s\n"
阅读全文
摘要:对于职责链模式,一般是这么定义的:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,即——将这些对象连成一条(处理)链,并沿着这条链传递该请求,直到这条链结束同时有一个对象处理它为止。最经典的职责链模式应用就是JavaEE规范中web.xml的filter了,filters按照配置的顺序,依次处理根据其mapping条件过滤得到的web请求(response)/应答(request),从而可以实现诸如编码转换、事务封装、页面缓存等众多“职责”。给出职责链模式的适用范围:1、有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。2、想在不明确指定接收者的情况下,
阅读全文
摘要:责任链模式是一种对象的行为模式【GOF95】。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递, 直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新 组织链和分配责任。从击鼓传花谈起击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上宾客依次坐定位置,由一人击鼓,击鼓的地方与传花的地方是分开的,以示公正。开始击鼓时,花束就开始依次传递,鼓声一落,如果花束在某人手中,则该人就得饮酒。击鼓传花便是责任链模式的应用。责任链可能是一条直线、一个环链或者一个树结构的一部分。二
阅读全文
摘要:本文以项目中的一个工作流模块,演示责任链模式、策略模式、命令模式的组合实现!流程简介最近在做的一个项目,涉及到的是一个流程性质的需求。关于工程机械行业的服务流程:服务任务流程和备件发运流程。项目之初,需求不是很清晰,算是演化模型吧。先出一个简单版本,然后根据用户的使用情况,再进一步探测新需求。所以也就是说这两个流程中的每一步暂时都不是固定的,而应该是可配置、可增减的。目前暂定的两个流程示意图如下:以上为两个流程的大致过程,当然实际过程中,可能还要走其他的流程。但是,仔细分析,你会看到。不管有多少个中间步骤,它们始终都对应着它们在该流程中所处的状态:/// <summary>///
阅读全文
摘要:【51CTO独家特稿】在上期的《PHP设计模式漫谈》中,我们讲到了PHP的代理模式,本节我们将继续深入PHP设计模式,讲解的行为模式是责任链模式,其目的是组织一个对象链处理一个如方法调用的请求。当ConcreteHandler(具体的处理程序)不知道如何满足来自Client的请求时,或它的目的不是这个时,它会委派给链中的下一个Handler(处理程序)来处理。这个设计模式通常和复合模式一起使用,其中有些叶子或容器对象默认委派操作给它们的父对象。另一个例子是,本地化通常是使用责任链处理的,当德语翻译适配器没有为翻译关键词找到合适的结果时,就返回到英语适配器或干脆直接显示关键词本身。耦合减少到最低
阅读全文
摘要:中介者模式(Mediator)定义一个对象封装一系列多个对象如何相互作用,使得对象间不需要显式地相互引用,从而使其耦合更加松散,并且还让我们可以独立变化多个对象相互作用。结构图如下:以一个聊天室的例子进行说明,一个聊天室可以很多成员,成员可以加入不同的讨论组,聊天室就是一个中介,讨论组中的成员通过聊天室发送消息。结构图如下:实现代码://IChatroom.hclassUser;classIChatroom{public:IChatroom();virtual~IChatroom();virtualvoidRegister(User*)=0;virtualvoidSend(char*pFrom
阅读全文
摘要:组合模式(Composite)的定义为:组合多个对象形成树形结构,以表示整体-部分的结构层次。组合模式对单个对象和组合对象的使用具有一致性。其结构图如下:例如一个新闻的树形菜单,它包含很多原始菜单(如国内、国际),以及由其子菜单组成的组合节点(如国内新闻下的时事、社会等),结构图如下:实现代码://Menu.h#include<string>classMenu{public:virtual~Menu();virtualvoidAdd(Menu*);virtualvoidRemove(Menu*);virtualMenu*GetChild(int);virtualvoidDispla
阅读全文
摘要:状态模式(State)允许一个对象在其内部状态改变的时候改变行为。结构图为:汽车有不同的档速,当行车时,经常需要换档,换档是从低到高,换档的过程就是状态的改变过程。实现代码://Car.hclassState;classCar{public:Car(State*);virtual~Car();voidSetState(State*);voidPull();private:State*m_pState;};#include"stdafx.h"#include"Car.h"#include"State.h"#include<iost
阅读全文
摘要:命令模式(Command)的目标是将一个请求封装成一个对象,因此可以参数化多个客户的不同请求,将请求排除,记录请求日志,并支持撤消操作。 结构图如下:其实现思想是将一个请求封装到一个类中(Command),再提供接收对象(Receiver),最后Command命令由Invoker调用。以一个电灯开关为例,命令的执行、不执行相对于开关的打开、关闭操作,由开关发出命令,电灯接收命令,结构图如下:实现代码://Light.hclassLight{public:Light();virtual~Light();voidTurnOn();voidTurnOff();};//Light.cpp#includ
阅读全文
摘要:责任链模式(Chain of Responsibility)的目标是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。结构图为:用一个采购的例子来说明,采购人员在进行采购前需经过上级部门的批准,对于不同金额的采购分别要由不同级别的上级才能审批,假设1万以内的采购需要主管批准,10万以内的需要主管向总经理申请批准,超过10万总经理向需董事长宴请批准,这时对于采购的审批过程就形成了一条责任链,对于不同的采购请求就需要一级一级的向上传递,并最终传递到最上级然后自行处理。结构图如下:实现代码://Process
阅读全文
摘要:0 引言0.1 设计模式解析(总序)0.2 设计模式解析后记0.3 与作者联系1 创建型模式1.1 Factory模式1)为了提高内聚(Cohesion)和松耦合(Coupling) ,我们经常会抽象出一些类的公共接口以形成抽象基类或者接口。 这样我们可以通过声明一个指向基类的指针来指向实际的子类实现,达到了多态的目的。这里很容易出现的一个问题 n 多的子类继承自抽象基类,我们不得不在每次要用到子类的地方就编写诸如 new ×××;的代码。这里带来两个问题 1)客户程序员必须知道实际子类的名称(当系统复杂后,命名将是一个很不好处理的问题,为了处理可能的名字冲突,有
阅读全文
摘要:ACE设计框架和基础模块的关联*一、案例描述视频电警开发,是基于ACE框架上的一次重复开发,本文档拟对ACE框架做一个梳理,以期对他人进行基于ace的开发有所帮助。*二、系统安装ACE的安装是一件比较麻烦的事情,这里简单的记录了我在VS2005下安装ACE的过程,希望能给大家一个参考。安装环境:l操作系统:WindowsXP专业版l 编译环境:VS2005中文版l ACE版本:ACE-5.5.1安装过程:a)下载安装包。Ace的安装文件可以在http://download.dre.vanderbilt.edu/中下载到,由于我是在windows环境下安装并且不需要TAO等其它库,便下载了ACE
阅读全文
摘要:ACE的接受器(Acceptor)和连接器(Connector):连接建立模式 接受器/连接器模式设计用于降低连接建立与连接建立后所执行的服务之间的耦合。例如,在WWW浏览器中,所执行的服务或“实际工作”是解析和显示客户浏览器接收到的HTML页面。连接建立是次要的,可能通过BSD socket或其他一些等价的IPC机制来完成。使用这些模式允许程序员专注于“实际工作”,而最少限度地去关心怎样在服务器和客户之间建立连接。而另外一方面,程序员也可以独立于他所编写的、或将要编写的服务例程,去调谐连接建立的策略。 因为该模式降低了服务和连接建立方法之间的耦合,非常容易改动其中一个,而不影响另外一个,..
阅读全文
摘要:一top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.说明:前五行都统计系统整体信息的 下面是进程信息区1 第一行: 跟uptime 一样,分别是当前时间13:48系统运行时间3 days当前登录用户数1user系统负载load average:,即任务队列的平均长度2 第二、三行为进程和CPU
阅读全文
摘要:目的:基本掌握了make的用法,能在Linux系统上编程。环境:Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备:准备三个文件:file1.c, file2.c, file2.hfile1.c:#include <stdio.h>#include "file2.h"int main(){printf("print file1$$$$$$$$$$$$$$$$$$$$$$$$\n");File2Print();return 0;}file2.h:#ifndef FILE2_H_#defineFILE2_
阅读全文

浙公网安备 33010602011771号