C++
文章平均质量分 68
blueamber
这个作者很懒,什么都没留下…
展开
-
1000
#includeusing namespace std;int main(){ int a=0,b=0; while(cin>>a>>b) cout<<a+b<<endl; return 0;}原创 2014-06-12 08:53:25 · 556 阅读 · 0 评论 -
vector模板类的成员函数
vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问元素,还可以使用指针的偏移方式访问,和常规数组不一样的是,vector能够自动存储元素,可以自动增长或缩小存储空间,vector的优点:1. 可以使用下标访问个别的元素2. 迭代器可以按照不同的方式遍历容器转载 2014-06-05 22:19:31 · 1255 阅读 · 2 评论 -
计数排序
计数排序的原理:计数排序是原创 2014-06-04 15:56:38 · 915 阅读 · 0 评论 -
霍纳法则
一﹑霍纳法则介绍假设有n+2个实数a0,a1,…,an,和x的序列,要对多项式Pn(x)= anxn +an-1xn-1+…+a1x+a0求值,直接方法是对每一项分别求值,并把每一项求的值累加起来,这种方法十分低效,它需要进行n+(n-1)+…+1=n(n+1)/2次乘法运算和n次加法运算。有没有更高效的算法呢?答案是肯定的。通过如下变换我们可以得到一种快得多的算法,即Pn(x)= anx原创 2014-06-04 08:43:47 · 1204 阅读 · 0 评论 -
增加小时,分钟,秒
void Time::Add_hour(int x){ hour+=x; if(hour>23)hour%=24;}void Time::Add_minter(int y){ minter+=y;if(minter==60){ minter%=60; Add_hour(minter/60);}}void Time::Add_secon原创 2014-05-15 08:50:00 · 638 阅读 · 0 评论 -
MFC的通用类
简单数据类:CPoint,CSize,CRect,CString,集合原创 2014-05-14 19:42:36 · 1304 阅读 · 0 评论 -
静态成员
类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时转载 2014-05-15 09:27:47 · 1510 阅读 · 0 评论 -
在MFC中使用自定义的消息
首先弄清楚两点:(1)谁要发送这个消息(2)谁要接受这个消息。 用一个简单的例子来说明。对象A向B(也可以就是A到A)发送消息。 1 发送消息 首先在A的头文件中定义这个消息: #define WM_USERMESSAGE WM_USER+30 所有自定义消息都是以WM_USER消息为基础加上一个任意的自然数来表示的。A是向外发送消息转载 2014-05-21 14:17:15 · 604 阅读 · 0 评论 -
数制转换
//数值转换 1 :将一个整数装换为二进制#include#define max 64;using namespace std;int main() {int n,i=0; int a[max]; int count=0; cout cin>>n; while(n!=0) {a[i]=n原创 2013-12-22 21:24:34 · 587 阅读 · 0 评论 -
冒泡排序
#includeusing namespace std;//交换元素void swap(int &a,int &b){ int t; t=a;a=b;b=t;}//输出元素void print(int s[],int n){ for(int i=0;i<n;i++) cout<<s[i]<<'\t'; cout<<endl;}//经典的冒泡算法,n个元素,比较n转载 2014-05-27 14:56:04 · 519 阅读 · 0 评论 -
选择排序
选择排序与冒泡排序类似,也是每次原创 2014-06-05 07:44:42 · 540 阅读 · 0 评论 -
指针与引用的区别
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数转载 2014-05-23 10:43:36 · 415 阅读 · 0 评论 -
开灯问题
/* 有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(关闭),第3个人 按下所有编号为3的倍数的开关(关掉的灯将被打开,开着的灯将被关闭),依次类推,一共有k个人, 问最后有哪些灯开着?输入n,k */#includeusing namespace std;int main(){ int n,k; int *s; co原创 2014-05-26 17:29:20 · 690 阅读 · 0 评论 -
assert宏
assert() 宏用法 注意:assert是宏,而不是函数。在C的assert.h 头文件中。 assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include void assert( int expression ); assert的作用是先计算表达式 expression ,如果其值为假(即为0),转载 2014-05-27 08:56:00 · 563 阅读 · 0 评论 -
创建蛇形数组
/* 在n*n方阵中输入1....n*n,要求数据呈蛇形,先下到底再转去左,到底转上,到顶后再转右,形成蛇形*/#includeusing namespace std;#define Max 10int a[Max][Max];int main() { int n,x,y,tot=0; cout<<"input n: "<<endl; cin>>n; memset(原创 2014-05-26 21:34:42 · 570 阅读 · 0 评论 -
冒泡排序的有趣使用
/* 将一个互不相同的四位数,把所有的数值从小到大排序后得到a,从大到小排序后得到b,然后 用b-a替换原来的数,并继续操作。*/#include#includeusing namespace std;void print(int s[],int n){for(int i=0;i<4;i++) cout<<s[i]<<'\t'; cout<<endl;}int原创 2014-05-27 11:02:01 · 1162 阅读 · 0 评论 -
c++面试
1. C中static有什么作用 (1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。 (2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存转载 2014-05-27 08:58:08 · 485 阅读 · 0 评论 -
浮点数陷阱
陷阱1[cpp] view plaincopyprint?double i; for(i = 0; i != 10; i += 0.1) printf("%.1lf\n", i); 程序会打印至10.0时结束循环吗?不会。因为i永远也不可能等于10,这是个无限循环陷阱2转载 2014-05-26 09:35:38 · 733 阅读 · 0 评论 -
求类似aabb形式的完全平方数
//求出所有的aabb样式的完全平方数#include#includeusing namespace std;int main(){ int n; double m; for(int i=1;i<=9;i++) for(int j=0;j<=9;j++) { n=i*1100+j*11; m= sqrt(n); if(floor(m)==m)//不直接原创 2014-05-25 19:46:55 · 1184 阅读 · 0 评论 -
将不知位数的数进行反转后输出
#includeusing namespace std;int main(){ int n,m,v; int *s; int f=1; int count=1,c=0; cout<<"input the number : "<<endl; cin>>n; //a while(n/10!=0) { n=n/10; f=f*10;原创 2014-05-25 18:02:40 · 786 阅读 · 0 评论 -
用链表来实现学生信息的存储
链表是线性表的链式存储结构,有单链表、循环单链表、双链表、循环双链表、顺序链表。链表不能够进行随机访问,但在插入和删除数据时不需要移动元素,比顺序结构操作简单。简单程序实现:#include#includeusing namespace std;struct student//建立学生信息链表结构体{ int num; float score; str原创 2014-03-10 20:25:54 · 7207 阅读 · 0 评论 -
在C++中实现变长数组
1.变长一维数组这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做://文件名: array01.cpp#includeusing namespace std;int main(){ int len; cin>>len; //用指针p指向new动态分配的长度为len*转载 2014-03-08 18:47:28 · 799 阅读 · 0 评论 -
杨辉三角
// 输出杨辉三角//============================使用二位数组来实现===============================#includeusing namespace std;#define max 10 //可改变以控制输出的行数int main() { int i,j; int a[ma原创 2013-12-21 22:15:40 · 551 阅读 · 0 评论 -
new与malloc,realloc,ceil的区别
new 与malloc 的区别1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而mallo转载 2014-03-08 19:03:07 · 644 阅读 · 0 评论 -
结构体分配内存
结构体内存分配问题(转)1)sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用。(2)终于搞懂struct结构体内存分配问题了,结构体中各个成员字节对齐遵循以下几个原则:1.结构体每个成员相对于结构体首地址的偏移量(offset)都是(这个)成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding); 例如有以下转载 2014-03-08 19:05:06 · 981 阅读 · 0 评论 -
长方体类
/*【项目4 - 长方柱类】编写基于对象的程序,求3个长方柱(Bulk)的体积。 数据成员包括长(length)、宽(width)、高(heigth)、体积,要求设计成员函数实现下面的功能:*(1)由键盘输入3个长方柱的长、宽、高;*(2)计算长方柱的体积(volume)和表面积(areas);*(3)输出这3个长方柱的体积和表面积;*/#includeu原创 2014-03-18 10:48:14 · 968 阅读 · 0 评论 -
使用顺序表完成学生信息的存储
顺序表来存储学生信息时,学生是结构体变量,则在线性表中的元素变量都是结构体类型,线性表的每个存储单元存储一个学生的信息包括学号、年纪等其他信息。在初始化线性表数据时可以使用结构体数组的方式往线性表中放入数据,一个结构体数组成员就代表了一个线性存储单元,可以使用指针或是l.elem[i-1].var来访问位于线性表第i个位置的学生的信息。程序如下:#include#include原创 2014-03-09 13:55:30 · 9473 阅读 · 0 评论 -
用栈来实现数制转换
#include#define Init 20#define Increment 10using namespace std;struct stack{ int *top; int *base; int initstack;};void Initstack(stack &s)//建立堆栈{ s.base=(int*)malloc(Ini原创 2014-03-11 18:58:20 · 914 阅读 · 0 评论 -
胖子伤不起
【项目2 - 胖子伤不起】 根据世界卫生组织推荐的体重标准,男性的标准体重=(身高cm-80)×70﹪,女性的标准体重=(身高cm-70)×60﹪。标准体重正负10﹪为正常体重;标准体重正负10﹪~ 20﹪为体重过重或过轻;标准体重正负20﹪以上为肥胖或体重不足,其中超重计算公式为:超重%=[(实际体重-标准体重)/(标准体重)]×100%,体重的单位是kg。 请编制一个程序,输入转载 2014-03-10 21:21:32 · 598 阅读 · 0 评论 -
借书方案
/* *借书方案:小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法? */#includeusing namespace std;int main() { char i,j,k; char book[5]={'A','B','C','D','E'};//代表5本书原创 2013-12-17 20:31:04 · 897 阅读 · 0 评论 -
递归的使用
在使用递归时要注意:【1】必须有结束条件 【2】函数公式 练习的程序//===========用有默认参数值的函数-----设计一个求阶乘的函数/*#includeusing namespace std;//using recursion int fun(int m) { if(m==0||m==1) retur原创 2013-11-13 21:19:52 · 549 阅读 · 0 评论 -
工资类
请设计成员函数实现下面的功能: (1)输入职工工资,工资保存到salary数组中,实际人数保存到number[]中(输入-1标志着工资输入结束); (2)给每个人涨500元工资(add_salarys是有参函数,在调用时,500当实参); (3)对涨后的工资进行排序; (4)输出排序后的工资。 (5)在main函数定义Salary类的对象,调用你自己设计好的成员函数,原创 2014-03-19 14:17:39 · 800 阅读 · 0 评论 -
const 成员函数
/* 设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等。 在设计中,由于求距离、求对称点等操作对原对象不能造成任何改变,所以, 将这些函数设计为常成员函数是合适的,能够避免数据成员被无意更改。*/class Point{private:int x,y;public:Point (int a,int b):x(a),y(b原创 2014-05-02 10:13:35 · 761 阅读 · 0 评论 -
构造函数
构造函数是在定义对象时diaoyon原创 2014-04-13 10:54:46 · 567 阅读 · 0 评论 -
友元函数
一.友元函数的说明和使用:在定义原创 2014-05-17 21:56:00 · 1128 阅读 · 0 评论 -
随机函数 rand&srand
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。rand(产生随机数)表头文件: #include定义函数 :int rand(void)函数说明 :因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值转载 2014-04-11 11:21:22 · 546 阅读 · 0 评论 -
static error
错误提示:'static' should not be used on member functions defined at file scope问题原因:static 不能在文件区域内定义!也就是说不能在类里面定义,必须先在类里面声明然后在类外定义!原创 2014-05-15 08:46:14 · 1002 阅读 · 0 评论 -
CArray类
CArray基础C++并不支持动态数组,MFC提供了一个CArray类来实现动态数组的功能。有效的使用CArray类,可以提高程序的效率。MFC提供了一套模板库,来实现一些比较常见的数据结构如Array,List,Map。CArray即为其中的一个,用来实现动态数组的功能。一、CArray类的构造函数CArray是从CObject派生,有两个模板参数,第一个参数就是CArr转载 2014-05-14 19:45:00 · 1190 阅读 · 0 评论 -
指针在函数中当形参时的问题
void myMalloc(char *s) //我想在函数中分配内存,再返回 { s=(char *) malloc(100); } void main() { char *p=NULL; myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么? if(p) free(p); } 程序2:void myMalloc(char **s转载 2014-04-08 21:27:48 · 994 阅读 · 0 评论 -
BMP文件格式详解
BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。转载 2014-05-04 21:28:45 · 657 阅读 · 0 评论