随笔分类 - c++
摘要:1 bool Find(int *matrix,int rows,int clumns,int number) 2 { 3 bool found=false; 4 if(matrix!=NULL&&rows>&& columns>0) 5 { 6 int row=0; 7 int column=columns-1; 8 while(row=0) 9 {10 if(matrix[row*columns+column]==number)11 {12 found=true;13 break;14 ...
阅读全文
摘要:1 //Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> //一个能处理四则运算的程序,实现语言C++,支持嵌套括号,可以处理实数,源码见下面: 2 #include 3 #include 4 #include 5 6 #include 7 using namespace std; 8 const int MAX=1000; 9 10 11 12 class Input 13 { 14 p...
阅读全文
摘要:在讨论设计模式的过程中,我们已经说到了许多面向对象范型的原则。这些原则可以总结如下:、 对象是具有明确定义的责任的事物。 对象对自己负责。 封装指的是任何形式的隐藏: 数据隐藏 实现隐藏 类隐藏(在抽象类或接口后) 设计隐藏 实例化隐藏 使用共性和可变性分析抽象出行为和数据中的变化。 针对接口编程 将继承看成一种将变化概念化的方法,而不是创建已有对象的特殊情形。 将变化放入一个类中,并与该类中的其他变化解耦。 力求松耦合。 力求强内聚。 将使用一个对象的代码与创建该对象的代码分离。 在应用“一次且紧...
阅读全文
摘要:(一)首先对智能指针有一些概念性的了解**********本部分内容摘自开源中国社区http://my.oschina.net/u/158589/blog/28994********1.什么是智能指针?智能指针(Smart Pointer),简单来说,就是用起来像指针,但是很聪明,可以自己在适当的时候删除动态分配的对象的指针。2.什么时候使用智能指针?智能指针主要用于生存期控制和阶段控制。比如,在一个类中,如果有指针成员,那么,如果类写的不够小心,就很容易出异常。因为指针指向的动态内存,必须在拷贝构造或者赋值时,复制一份同样大小的内存。否则,容易引起内存泄漏或者对未定义的指针就行删除。3.使用
阅读全文
摘要:读取用户指定的任意文本文件,然后允许用户从该文件查找单词,查询的结果是该单词出现的次数,并列出每次出现所在的行,如果某单词在同一行中多次出现,程序将只显示改行的一次。行号按升序显示(int main()&&int main(int argc,char**argv)的区别算是了解了,但是跟int mian(int argc,char**argv){}中的文件操作还不熟悉,所以文件读取出现异常还不知道从哪里处理)【原来是中文字符不可以】code: 1 //使用以vector容器存储行号的textQuery类 2 #include "TextQuery.h" 3
阅读全文
摘要:很多人听说过标准auto_ptr智能指针机制,但并不是每个人都天天使用它。这真是个遗憾,因为auto_ptr优雅地解决了C++设计和编码中常见的问题,正确地使用它可以生成健壮的代码。本文阐述了如何正确运用auto_ptr来让你的代码更加安全——以及如何避免对auto_ptr危险但常见的误用,这些误用会引发间断性发作、难以诊断的bug。1.为什么称它为“自动”指针?auto_ptr只是众多可能的智能指针之一。许多商业库提供了更复杂的智能指针,用途广泛而令人惊异,从管理引用的数量到提供先进的代理服务。可以把标准C++auto_ptr看作智能指针的FordEscort(elmar注:可能指福特的一种
阅读全文
摘要:C++ code到运行程序作为一个c++程序员这个应该是最应该知道的细节,简言之:编译----链接----可执行的程序。这里所说的细节主要是第一步的细节,编译器如何把c++代码编译成目标代码。概括的讲是把c++代码转化成cpu能认识的东西。这个过程十分的复杂,需要解析c++标准这个庞大的语法体系,还要支撑起面向对象中的一些特性,比如继承,多态,封装等等,这个过程也由于编译器不同而不同,虽然都是c++编译器,编译出来的代码是不同的,这就导致了一些问题。因为c++标准并没有定义编译完成之后的代码的规范。这便造成了一些技术的诞生。也可以看出c++标准是针对程序员而言的,c++标准约束程序员,编译器来
阅读全文
摘要:#includeusing namespace std;typedef struct node{ double bev;//数 char ser[15];//表达式 int length;//表达式长度}Bnode;Bnode dev_4[4];//四个数Bnode dev_3[3];//三个数Bnode dev_2[2];//两个数Bnode dev_1;//一个数char flag[4]={'+','-','/','*'};Bnode count(Bnode d1,Bnode d2,char ch){ Bnode d3;//临
阅读全文
摘要:一、 需求分析1. 本程序是是利用平衡二叉树实现一个动态查找表,实现动态查找表的三种基本功能:查找、插入和删除。2. 初始,平衡二叉树为空树,可以按先序输入平衡二叉树,以输入0结束,中间以回车隔开,创建好二叉树后,可以对其查找,再对其插入,输入0结束插入,再可以对其删除,输入0结束,每次插入或删除一个结点后,更新平衡二叉树的显示。3. 本程序以用户和计算机的对话方式执行,根据计算机终端显示:“提示信息”下,用户可由键盘输入要执行的操作。4. 测试数据(附后)二、 概要设计1. 抽象数据类型动态查找表的定义如下:ADT DynamicSearchTable{ 数据结构D:D是具有相同特性的数据.
阅读全文
摘要:1.extern的作用(附带const和static)const能定义常量,并且常量是有数据类型的,且可以调试。const还可以修饰函数形式参数、返回值和类的成员函数。static最主要的功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0;extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时在其他模块中寻找其定义。另外还可以做链接指示。static声明一个变量的作用(1)对局部变量声明,则为改变量分配的控件在整个程序执行期间始终存在;(2)对全局变量声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。静态局
阅读全文
摘要:前言:迭代的是人,递归的是神。——L. Peter Deutsch展开递归调用,是分析递归的利器。进行数学归纳,是使用递归的利器。对初学者而言,讲一大堆理论,不如举一个例子。本系列分三篇分析及使用递归。第一篇——递归调用的分析第二篇——递归调用的初步使用第三篇——递归调用的进阶使用一、递归调用的一般结构。递归函数一般有如下特征:recursionFun(){ //第一部分:递归结束条件,前期处理。 if 递归结束条件 return; //第二部分:递归调用。 recusionFun(); //第三部分:递归调用后期处理,也可能有return语句。}二、递归调用的4种形式。下面看递归调用的4种形
阅读全文
摘要:下面是个关于递归调用简单但是很能说明问题的例子:/*递归例子*/ #include<stdio.h> void up_and_down(int); int main(void) { up_and_down(1); return 0; } void up_and_down(int n) { printf("Level %d:n location %p/n",n,&n); /* 1 */ if(n<4) up_and_down(n+1); printf("Level %d:n location %p/n",n,&n)...
阅读全文
摘要:union 关键字的用法与struct 的用法非常类似,但也有很大的不同。union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。例子如下:union StateMachine{ char character; int number; char *str; double exp;};一个union 只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大长度是double 型态,所以StateMachine 的空间大小就是doubl...
阅读全文
浙公网安备 33010602011771号