09 2013 档案
摘要:什么是栈结构栈结构是从数据的运算来分类的,也就是说栈结构具有特殊的运算规则,即:后进先出。我们可以把栈理解成一个大仓库,放在仓库门口(栈顶)的货物会优先被取出,然后再取出里面的货物。而从数据的逻辑结构来看,栈结构起始就是一种线性结构。如果从数据的存储结构来进一步划分,栈结构包括两类:顺序栈结构:即使...
阅读全文
摘要:问题描述:围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里。狐狸想吃掉兔子。一天,兔子对狐狸说:“你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依次类推,次数不限,若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能...
阅读全文
摘要:问题描述:有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前m个数。程序代码:#include#define MAXLEN 200 using namespace std;int a[MAXLEN],b[MAXLEN];int main(){ int * move(int a[],...
阅读全文
摘要:问题描述:有n个人围成一圈,顺序排号。从第一个人开始报数(1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。分析:首先由用户输入人数n,然后对这n个人进行编号【因为如果不编号的话,我们就不能知道最后是哪位童鞋留下来了:)】然后就开始了一圈一圈的循环,不断形成新的圈子,不断有人被淘汰,...
阅读全文
摘要:准备数据准备在链表操作中需要用到的变量及数据结构示例代码如下:struct Data //数据结点类型 { string key; //关键字 string name; int age;};struct CLType //定义链表结构 { Data nodeData; CLType *ne...
阅读全文
摘要:准备数据#define MAXLEN 100 //定义顺序表的最大长度struct DATA{ char key[10]; //结点的关键字 char name[20]; int age;};struct SLType //定义顺序表结构 { DATA ListData[MAXLEN+1];//保...
阅读全文
摘要:运算符重载函数既可以做为类成员函数也可以重载为友元函数,但使用定义方法和使用上是由较大差别的。运算符重载函数作为类成员函数首先看一个运算符重载函数作为类成员函数的示例代码:定义Complex为复数类,重载运算符"+"实现复数的相加。程序1.1#include using namespace std;...
阅读全文
摘要:使用方法:(1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数。(2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替。注意事项:(1)一般在声明函数是设置默认参数。如果在函数声明和定义函数时都设置了默认参数,则以函数声明的默认参数为准。#includeusing namesp...
阅读全文
摘要:刚接触到指针时,关于指向变量的常指针和指向常变量的指针容易混淆,所以整理下,希望能够帮助自己也帮助到大家。常(量)指针常指针就是我们说的指向常量的指针,顾名思义,它是用来指向常量的。用常指针指向常变量实际上,C++规定只能用指向常变量的指针指向常变量,普通指针指向它就会报错,原因也很容易理解,我们用...
阅读全文
摘要:题目描述:两个球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已经抽签决定比赛名单。有人向队员打听比赛安排的名单。a说他不和x比,c说他不和x,z比,请编程找出三队赛手的名单。分析:要找去三队赛手的名单,也就是要分别找到a,b,c的对手,我们通过排除法,循环遍历所有的可能性得到结...
阅读全文
摘要:刚开始学习C++的类和对象的部分,对类中的常数据成员和静态数据成员的概念和用法经常混淆,所以今天整理一下,顺便说一下,今天是我的生日,祝我生日快乐,呵呵。常数据成员常数据成员是指在类中定义的不能修改其值的一些数据成员,类似于我们以前学过的常变量,虽然是变量,也有自己的地址,但是一经赋初值,便不能再被...
阅读全文
摘要:(1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。例如,有人觉得BASIC中用“* *”作为幂运算符很方便,也想在C++中将“* *”定义为幂运算符,用“3* *5”表示35,这是不行的。(2)C++允许重载的运算符C++中绝大部分运算符都是可以被重载的。不能重载的运算符只...
阅读全文
摘要:运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载重载运算符的函数一般格式如下:函数类型 operator 运算符名称 (形参表列){对运算符的重载处理}例如,想将“+...
阅读全文
摘要:我们在定义函数时,可以通过定义函数模板,来简化一些功能相同而数据类型不同的函数的定义和调用过程。C++中的函数模板对于类的声明来说,也有同样的问题。有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int{ public: Compare...
阅读全文
摘要:定义我们知道函数的重载可以实现一个函数名多用,将功能相同或者类似函数用同一个名来定义。这样可以简化函数的调用形式,但是程序中,仍然需要分别定义每一个函数。C++提供的函数模板可以更加简化这个过程。所谓函数模板实际上是建立一个通用函数,其涵涵素类型额形参类型不具体指定,用一个虚拟的类型来代表,这个通用...
阅读全文
摘要:我们知道,在一个类总可以有公有的(public)成员和私有的(private)成员。在类外可以访问公用成员,只有本类中的函数可以访问本类的私有成员。现在,我们学习一种新的情况——友元。在C++中,这种关系以关键字friend声明。友元可以访问与其有好友关系的类中的私有成员。包括友元函数和友元类。友元...
阅读全文
摘要:静态数据成员我们知道全局变量是可以在文件中共享的,但是用全局变量时,安全性却得不到保证,因为在文件中的任何地方都可以自由的修改全局变量,很可能造成误操作,导致程序的错误。如果,我们想在同类个多个对象之间实现数据共享,可以不使用全局变量,而使用静态数据成员的。静态数据成员是一种特殊的成员,它一stat...
阅读全文
摘要:对象的赋值如果对一个类定义了两个或多个对象,则这些同类的对象之间可以互相赋值,或者说,一个对象的值可以赋给另一个同类的对象。这里所指的对象的值是指对象中所有数据成员的值。对象之间的赋值也是通过赋值运算符“=”进行的。本来赋值运算符“=”只能用来对单个的变量赋值,现在被扩展为两个同类对象之间的赋值,这...
阅读全文
摘要:我们知道可以用new运算符可以动态的分配内存,用delete运算符可以释放这些内存。当我们使用new运算符动态的分配一个内存之后,会自动返回一个该内存段的起始地址,也就是指针。=============下面先给出一个new和delete基本应用的例子,回顾一下它的基本用法============#i...
阅读全文
摘要:由于与对象又管的const型数据种类较多,形式又有些相似,往往难记,容易混淆,因此总结一下相关用法,具体用法可查看下方链接C++中对象的常引用C++中指向对象的常指针和指向常对象的指针C++中的常对象和常对象成员
阅读全文
摘要:直接传递对象名用对象名做函数参数时,在函数调用时将建立一个新的对象,它是形参对象的拷贝。================下面给出一个直接传递对象名的例子程序1.1==================#includeusing namespace std;class Time { public: T...
阅读全文
摘要:指向对象的常指针将指向对象的指针变量声明为const型,并使之初始化,这样指针值始终保持为其初始值,不能改变。Time t1(10,12,15),t2;Time * const ptr1=&t1;ptr1=&t2;定义指向对象的常指针的一般形式为类名 * const 指针变量=对象地址;注意应...
阅读全文
摘要:常对象常对象必须在定义对象时就指定对象为常对象。常对象中的数据成员为常变量且必须要有初始值,如Time const t1(12,34,36); //定义t1为常对象这样的话,在所有的场合中,对象t1中的所有数据成员的值都不能被修改。凡希望保证数据成员不被改变的对象,可以声明为常对象。定义常对象的一般...
阅读全文
摘要:指向对象的指针在建立对象的时候,变异系统会给每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的指针。一个简单的示例1.1:#includeusing namespace std;class Student{ public: int n...
阅读全文
摘要:类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性。当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法。例如,一个班有50个学生,我们定义了一个学生类,该类的学生具有相同的数据成员和成员函数,我们就可以定义一个这样的数组。Student stdu[50...
阅读全文
摘要:构造函数:在类实例化对象时自动执行,对类中的数据进行初始化。构造函数可以从载,可以有多个,但是只能有一个缺省构造函数。析构函数:在撤销对象占用的内存之前,进行一些操作的函数。析构函数不能被重载,只能有一个。调用构造函数和析构函数的顺序:先构造的后析构,后构造的先折构。它相当于一个栈,先进后出。#in...
阅读全文
摘要:对象的初始化对象时类的实例,类是不占用空间的,对象是占用空间的。因为类是抽象的,不占用空间的,所以我们不能再定义类的时候对对象进行初始化操作的。但是,我们可以定义一个函数,在类实例化一个对象的时候,对对象赋初值,这个函数就叫做构造函数。构造函数是类在定义对象的时候,自动执行的对对象中的数据进行初始化...
阅读全文