- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 C++中栈结构建立和操作
什么是栈结构栈结构是从数据的运算来分类的,也就是说栈结构具有特殊的运算规则。而从数据的逻辑结构来看,栈结构起始就是一种线性结构。如果从数据的存储结构来进一步划分,栈结构包括两类:顺序栈结构:即使用一组地址连续的内存单元依次保存栈中的数据。在程序中,可以定义一个指定大小的结构数组来作为栈,序号为0的元素就是栈低,再定义一个变量top保存栈顶的序号即可。链式栈结构:即使用链
2013-09-29 00:52:47 8865
原创 C++经典问题:狐狸找兔子
问题描述:围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里。狐狸想吃掉兔子。一天,兔子对狐狸说:“你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依次类推,次数不限,若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下来。”狐狸满口答应,就开始找了。它从早到晚进了1000次洞,累得昏了过去,也没找到兔子,请问
2013-09-28 00:05:08 10373 19
原创 C++经典题目:有n个整数,使前面各数顺序向后移动m个位置
问题描述:有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前m个数。程序代码:#include#define MAXLEN 200 using namespace std;int a[MAXLEN],b[MAXLEN];int main(){ int * move(int a[],int n,int m); //声明用来进行移动操作的
2013-09-27 23:41:12 9917
原创 C++经典题目:约瑟夫环问题
问题描述:有n个人围成一圈,顺序排号。从第一个人开始报数(1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。分析:首先由用户输入人数n,然后对这n个人进行编号【因为如果不编号的话,我们就不能知道最后是哪位童鞋留下来了:)】然后就开始了一圈一圈的循环,不断形成新的圈子,不断有人被淘汰,那么循环到什么时候截止呢?对只剩最后一个人,也就是说淘汰n-1了个人的时候,这个时候
2013-09-26 23:48:40 9446
原创 C++中单链表的建立和操作
准备数据准备在链表操作中需要用到的变量及数据结构示例代码如下:struct Data //数据结点类型 { string key; //关键字 string name; int age;};struct CLType //定义链表结构 { Data nodeDate; Data *nextNode;};定义了链表数据元素的类型Dat
2013-09-26 20:52:25 8857
原创 C++中如何建立一个顺序表
准备数据#define MAXLEN 100 //定义顺序表的最大长度struct DATA{ char key[10]; //结点的关键字 char name[20]; int age;};struct SLType //定义顺序表结构 { DATA ListData[MAXLEN+1];//保存顺序表的结构数组 int ListLen; //顺序表已存结点
2013-09-25 00:09:39 22055 6
原创 运算符重载函数作为类成员函数和友元函数
运算符重载函数既可以做为类成员函数也可以重载为友元函数,但使用定义方法和使用上是由较大差别的。运算符重载函数作为类成员函数首先看一个运算符重载函数作为类成员函数的示例代码:定义Complex为复数类,重载运算符"+"实现复数的相加。程序1.1#include using namespace std;class Complex{ public: Complex()
2013-09-22 23:17:43 3725
原创 C++中函数的默认参数
使用方法:(1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数。(2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替。注意事项:(1)一般在声明函数是设置默认参数。如果在函数声明和定义函数时都设置了默认参数,则以函数声明的默认参数为准。#includeusing namespace std;int main(){ double add(d
2013-09-21 23:16:43 1600
原创 指向变量的常指针和指向常变量的指针
刚接触到指针时,关于指向变量的常指针和指向常变量的指针容易混淆,所以整理下,希望能够帮助自己也帮助到大家。常(量)指针常指针就是我们说的指向常量的指针,顾名思义,它是用来指向常量的。用常指针指向常变量实际上,C++规定只能用指向常变量的指针指向常变量,普通指针指向它就会报错,原因也很容易理解,我们用普通指针指向常变量之后,有可能就会进行改变常变量数值的操作,这样做是不被允许
2013-09-21 11:07:15 5119
原创 一道有关球赛队员分配的C++程序题目
题目描述:两个球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已经抽签决定比赛名单。有人向队员打听比赛安排的名单。a说他不和x比,c说他不和x,z比,请编程找出三队赛手的名单。分析:要找去三队赛手的名单,也就是要分别找到a,b,c的对手,我们通过排除法,循环遍历所有的可能性得到结果。程序代码:#includeusing namespace std;v
2013-09-21 00:23:39 2348
原创 C++类中的常数据成员和静态数据成员的区别
刚开始学习C++的类和对象的部分,对类中的常数据成员和静态数据成员的概念和用法经常混淆,所以今天整理一下,顺便说一下,今天是我的生日,祝我生日快乐,呵呵。常数据成员常数据成员是指在类中定义的不能修改其值的一些数据成员,类似于我们以前学过的常变量,虽然是变量,也有自己的地址,但是一经赋初值,便不能再被修改。适用于类中定义一些初始化之后不希望被修改的变量。定义方法:const na
2013-09-20 01:19:26 6219 7
原创 C++重载运算符的规则
(1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。例如,有人觉得BASIC中用“* *”作为幂运算符很方便,也想在C++中将“* *”定义为幂运算符,用“3* *5”表示35,这是不行的。(2)C++允许重载的运算符C++中绝大部分运算符都是可以被重载的。不能重载的运算符只有5个:. (成员访问运算符).*
2013-09-16 23:40:07 2461
原创 C++运算符重载的方法
运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载重载运算符的函数一般格式如下:函数类型 operator 运算符名称 (形参表列){对运算符的重载处理}例如,想将“+”用于Complex(复数)的加法运算,函数的原型可以是这样的:
2013-09-11 18:04:44 1411
原创 C++中的类模板
我们在定义函数时,可以通过定义函数模板,来简化一些功能相同而数据类型不同的函数的定义和调用过程。C++中的函数模板对于类的声明来说,也有同样的问题。有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int{ public: Compare(int a,int b) { x=a; y=b; }
2013-09-08 23:00:04 1953
原创 C++中的函数模板
定义我们知道函数的重载可以实现一个函数名多用,将功能相同或者类似函数用同一个名来定义。这样可以简化函数的调用形式,但是程序中,仍然需要分别定义每一个函数。C++提供的函数模板可以更加简化这个过程。所谓函数模板实际上是建立一个通用函数,其涵涵素类型额形参类型不具体指定,用一个虚拟的类型来代表,这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数
2013-09-08 20:13:47 1695
原创 C++中的友元小结
我们知道,在一个类总可以有公有的(public)成员和私有的(private)成员。在类外可以访问公用成员,只有本类中的函数可以访问本类的私有成员。现在,我们学习一种新的情况——友元。在C++中,这种关系以关键字friend声明。友元可以访问与其有好友关系的类中的私有成员。包括友元函数和友元类。友元函数如果在本类意外的其他地方定义了一个函数(这个函数可以是不属于任何类的非成员函数,
2013-09-08 15:53:51 2149
原创 C++中的对象的赋值和复制
如果对一个类定义了两个或多个对象,则这些同类的对象之间可以互相赋值,或者说,一个对象的值可以赋给另一个同类的对象。这里所指的对象的值是指对象中所有数据成员的值。对象之间的赋值也是通过赋值运算符“=”进行的
2013-09-07 22:24:01 10618 4
原创 对象的动态建立和释放
我们知道可以用new运算符可以动态的分配内存,用delete运算符可以释放这些内存。当我们使用new运算符动态的分配一个内存之后,会自动返回一个该内存段的起始地址,也就是指针。=============下面先给出一个new和delete基本应用的例子,回顾一下它的基本用法============#includeusing namespace std;int main(){
2013-09-06 20:27:55 1580
原创 C++中const型数据的小结
由于与对象又管的const型数据种类较多,形式又有些相似,往往难记,容易混淆,因此总结一下相关用法,具体用法课查看下方链接C++中对象的常引用C++中指向对象的常指针和指向常对象的指针C++中的常对象和常对象成员
2013-09-06 13:10:17 1215
原创 C++中指向对象的常指针和指向常对象的指针
指向对象的常指针将指向对象的指针变量声明为const型,并使之初始化,这样指针值始终保持为其初始值,不能改变。Time t1(10,12,15),t2;Time * const ptr1=&t1;ptr1=&t2;定义指向对象的常指针的一般形式为类名 * const 指针变量=对象地址;注意应该在定义指针变量时使之初始化指向对象的常指针
2013-09-06 09:17:24 2720
原创 C++中的常对象和常对象成员
常对象常对象必须在定义对象时就指定对象为常对象。常对象中的数据成员为常变量且必须要有初始值,如Time const t1(12,34,36); //定义t1为常对象这样的话,在所有的场合中,对象t1中的所有数据成员的值都不能被修改。凡希望保证数据成员不被改变的对象,可以声明为常对象。定义常对象的一般形式为类名 const 对象名(实参列表);也可以把
2013-09-05 23:53:00 4382
原创 C++中的对象指针
指向对象的指针在建立对象的时候,变异系统会给每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的指针。一个简单的示例1.1:#includeusing namespace std;class Student{ public: int num; int score; Student(int ,i
2013-09-05 12:54:41 2702
原创 C++中的对象数组
类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性。当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法。例如,一个班有50个学生,我们定义了一个学生类,该类的学生具有相同的数据成员和成员函数,我们就可以定义一个这样的数组。Student stdu[50];//假设已经声明了Student类,定义stud数组,有50个元素=======
2013-09-05 08:57:55 2675 1
原创 C++中的构造函数和析构函数
构造函数:在类实例化对象时自动执行,对类中的数据进行初始化。构造函数可以从载,可以有多个,但是只能有一个缺省构造函数。析构函数:在撤销对象占用的内存之前,进行一些操作的函数。析构函数不能被重载,只能有一个。调用构造函数和析构函数的顺序:先构造的后析构,后构造的先折构。它相当于一个栈,先进后出。#include#includeusing namespace std
2013-09-03 00:05:09 2999 1
原创 C++中的构造函数小结
对象的初始化对象时类的实例,类是不占用空间的,对象是占用空间的。因为类是抽象的,不占用空间的,所以我们不能再定义类的时候对对象进行初始化操作的。但是,我们可以定义一个函数,在类实例化一个对象的时候,对对象赋初值,这个函数就叫做构造函数。构造函数是类在定义对象的时候,自动执行的对对象中的数据进行初始化操作的函数。构造函数的作用构造函数不同于其他的函数,不需要用户调用它(用户也
2013-09-02 13:57:24 1612
TortoiseSVN1.6.7.18415x64svn1.6.9.zip
2013-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人