摘要: 1---------printf中的%f会自动转化成double2---------static_cast的应用实际上static_cast真正用处并不在指针和引用上,而在基础类型和对象的转换上 static_cast < type-id > ( expression ) ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。 ②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的 阅读全文
posted @ 2013-06-21 20:53 夜雨阑珊 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 1、一下是使用strcpy_s与strcpy的安全性比较char szBuf[2] = {0};strcpy_s(szBuf, 2, "12131"); //新的CRT函数strcpy(szBuf, "12131"); //老的CRT函数上述代码,明显有缓冲区溢出的问题。 使用strcpy_s函数则会抛出一个异常。而使用strcpy函数的结果则未定,因为它错误地改变了程序中其他部分的内存的数据,可能不会抛出异常但导致程序数据错误,也可能由于非法内存访问抛出异常。使用新的增强安全的CRT函数有什么好处呢?简单地说,新的函数加强了对参数合法性的检查以及缓冲区 阅读全文
posted @ 2013-06-21 20:51 夜雨阑珊 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1---------带参数的构造函数B (int i) : data(i);//data=i冒号后面是成员变量初始化列表member initialization list2-----------拷贝构造函数的实现int length=strlen(other.m_data)//原始数据的长度m_data=new char[length+1];//开辟一段内存区域strcpy(m_data,other.m_data,length*sizeof(int));//拷贝数据到内存区域3--------赋值函数实现字符串的传值string &operate=(const string & 阅读全文
posted @ 2013-06-21 20:49 夜雨阑珊 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 1------指针与引用的区别:1:非空区别。一个引用必须指向某个对象,必须初始化。但是指针可以赋空值,但给指针赋值之前必须制定指针的地址。变量不许为空时必须把变量赋给引用;2:合法性区别。引用使用之前不需要测试合法性。指针应防止为空;3:指针可以重新赋值指向新的对象。而引用的对象不能改变,但其内容可以改变;4:使用指针的情况--不同时刻指向不同的对象;2--------void swap(int *p,int*q){ int* temp;//不分配内存*temp=*p;//拷贝时临时给了一个地址,函数结束后不收回,造成内存泄漏*p=*q;*q=*temp;}//void swap(int* 阅读全文
posted @ 2013-06-21 20:48 夜雨阑珊 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]所以数组指针也称指向一维数组的指针,亦称行指针。指针数组定义 int *p[n] 阅读全文
posted @ 2013-06-21 20:46 夜雨阑珊 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 贪心方法:总是对当前的问题作最好的选择,也就是局部寻优。最后得到整体最优。应用:1:该问题可以通过“局部寻优”逐步过渡到“整体最优”。贪心选择性质与“动态规划”的主要差别。2:最优子结构性质:某个问题的整体最优解包含了“子”问题的最优解。程序1 1 #include <iostream.h> 2 struct goodinfo 3 { 4 float p; //物品效益 5 float w; //物品重量 6 float X; //物品该放的数量 7 int flag; //物品编号 8 };//物品信息结构体 9 10 void Insertionsort(goo... 阅读全文
posted @ 2013-06-21 20:43 夜雨阑珊 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 一、 实验目的熟悉线性表的操作和应用;利用顺序表的存储结构解决约瑟夫环问题。二、 实验原理1. 问题描述:设编号为1,2,…,n(n>0)个人按顺时针方向围坐—圈,从第一个人开始报数,当报到第M个人时,该人出圈。然后接着报,L个人出圈或圈里还剩(N-L)个人。2. 方法实现:利用线性表中循环链表的结构特点,每个节点表示一个人。用一个程序模拟人的报数出圈,1表示人还在圈里,0表示人已经出圈了。当第L个人出圈之后,报数程序结束,输出最后的在圈子里的人的情况。3. 程序设计思路:⑴先定义一个链表节点的结构体,结构体中data的值用来表示该节点所表示的人是否出圈,*next指针指向下一节点;⑵用 阅读全文
posted @ 2013-06-21 20:37 夜雨阑珊 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 题目:编程实现哈希表的造表和查找算法。要求:用除留余数法构造哈希函数,用二次探测再散列解决冲突。一、 需求分析用户可以根据自己的需求输入一个顺序表(哈希表)通过用除留余数法构造哈希函数,并用开放地址的二次探测再散列解决冲突。在经过排序后显示该哈希表。程序执行的命令包括:(1)创建哈希表 (2)输出哈希表 (3)二次探测再散列解决冲突 二、概要设计⒈ 为实现上述算法,需要顺序表的抽象数据类型:ADT Hash {数据对象D:D是具有相同特征的数据元素的集合。各数据元素均含有类型相同,可唯一标识数据元素的关键字。数据关系R:数据元素同属一个集合。基本操作P:Creathash(&h)操作结 阅读全文
posted @ 2013-06-21 20:33 夜雨阑珊 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/eroswang/archive/2009/04/15/4075580.aspx最近用到了qsort,简单整理一下,方便以后的查找qsort,包含在stdlib.h头文件里,函数一共四个参数,没返回值.一个典型的qsort的写法如下qsort(s,n,sizeof(s[0]),cmp);其中第一个参数是参与排序的数组名(或者也可以理解成开始排序的地址,因为可以写&s[i]这样的表达式,这个问题下面有说明); 第二个参数是参与排序的元素个数; 第三个三数是单个元素的大小,推荐使用sizeof(s[0])这样的表达式,下面也有说明 :) ;第四 阅读全文
posted @ 2013-06-21 20:30 夜雨阑珊 阅读(601) 评论(0) 推荐(0) 编辑
摘要: c中puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。 功 能: 送一字符串到流stdout中 用 法: int puts(char *string); 程序例: #include <stdio.h> int main(void) { char string[] = "This is an example output string\n"; puts(string); return 0; } 说明: puts 和 printf 的用法一样,puts()函数的... 阅读全文
posted @ 2013-06-21 19:28 夜雨阑珊 阅读(14900) 评论(0) 推荐(1) 编辑