C++学习笔记摘录九.docx
- 文档编号:22816725
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:20
- 大小:236.22KB
C++学习笔记摘录九.docx
《C++学习笔记摘录九.docx》由会员分享,可在线阅读,更多相关《C++学习笔记摘录九.docx(20页珍藏版)》请在冰豆网上搜索。
C++学习笔记摘录九
C++学习笔记
SkySeraph2010-7-31阅读整理
摘自:
1:
#include
usingnamespacestd;
boolFind(int[],int);
voidmain()
{
inta[]={1,2,3,4,5,6,7,8,9};
boolcheck=Find(a,9);
if(check==true)
{
cout<<"数组a的元素是按照从小到大排列的\n";
}
else
{
cout<<"数组a的元素不是按照从小到大排列的\n";
}
}
boolFind(inta[],intn)
{
for(inti=1;i { if(a[i]<=a[i-1])//由于i已经是1第一次循环中,所以i就是2后面的i-1就是1所以这里条件成立返回假。 并且如果两个元素相等也会返回假,而只有大于的时候才会返回下面的真 { returnfalse; } } returntrue; }//这个就是判断数组元素是否按照从小到大的顺序排列 2: #include usingnamespacestd; boolCheckArray(int[],int); intFindA(int,int[],int); intFindB(int,int[],int); voidmain() { inta[]={1,2,3,4,5,6,7,8,9}; boolcheck=CheckArray(a,9); if(check==true)//判断是否是从小到大排序 { cout<<"数组a的元素是按照从小到大排列的\n"; intchecka; cout<<"请输入你要查找的元素: "; cin>>checka; intcheckb=FindA(checka,a,9); if(checkb==9) { cout<<"对不起,没有查找到你输入的元素位置。 \n"; } else { cout< "< } } else { cout<<"数组a的元素不是按照从小到大排列的\n"; intchecka; cout<<"请输入你要查找的元素: "; cin>>checka; intcheckb=FindA(checka,a,9); if(checkb==9) { cout<<"对不起,没有查找到你输入的元素位置。 \n"; } else { cout< "< } } } boolCheckArray(inta[],intn)//判断数组排序 { for(inti=1;i { if(a[i]<=a[i-1]) { returnfalse; } } returntrue; } intFindA(intm,inta[],intn)//递增算法 { for(inti=0;i { if(a[i]==m) { returni; } } returnn; } intFindB(intm,inta[],intn)//二分算法 { into=0,h=n-1,i; while(o<=h) { i=(o+h)/2; if(a[i]==m) { returni; } if(a[i] { o=i+1; } else { h=i-1; } } returnn; }//这个例子是使用前一节的判断数组并且和递增算法和二分算法一起配合使用的方式! 3: #include usingnamespacestd; classGet { public: boolCheckArray(int[],int); intFindA(int,int[],int); intFindB(int,int[],int); }; voidmain() { Getone;//定义get类的对象one inta[]={1,2,3,4,5,6,7,8,9}; boolcheck=one.CheckArray(a,9);//要调用函数必须通过对象one来调用下同。 if(check==true)//判断是否是从小到大排序 { cout<<"数组a的元素是按照从小到大排列的\n"; intchecka; cout<<"请输入你要查找的元素: "; cin>>checka; intcheckb=one.FindA(checka,a,9); if(checkb==9) { cout<<"对不起,没有查找到你输入的元素位置。 \n"; } else { cout< "< } } else { cout<<"数组a的元素不是按照从小到大排列的\n"; intchecka; cout<<"请输入你要查找的元素: "; cin>>checka; intcheckb=one.FindA(checka,a,9); if(checkb==9) { cout<<"对不起,没有查找到你输入的元素位置。 \n"; } else { cout< "< } } } boolGet: : CheckArray(inta[],intn)//Get: : 为成员限定符,指定Get类中的函数声明下同 { for(inti=1;i { if(a[i]<=a[i-1]) { returnfalse; } } returntrue; } intGet: : FindA(intm,inta[],intn)//递增算法 { for(inti=0;i { if(a[i]==m) { returni; } } returnn; } intGet: : FindB(intm,inta[],intn)//二分算法 { into=0,h=n-1,i; while(o<=h) { i=(o+h)/2; if(a[i]==m) { returni; } if(a[i] { o=i+1; } else { h=i-1; } } returnn; }//这就是使用对象的方式操作 4: #include usingnamespacestd; classGet { public: inta[5]; }; voidmain() { Getone[5];//定义一个数组对象 inti; for(i=0;i<5;i++) { cin>>one[i].a[i];//接受用户的输入 one[i]也是数组并且也是从0开始依次排序! } for(i=0;i<5;i++) { cout<<"one["< ";//输出第几个元素 cout< } system("pause"); } 5: #include usingnamespacestd; classArea { public: Area(intl,intw) { lenght=l; wight=w; cout<<"构造函数运行中...长: "< "< } ~Area() { cout<<"析构函数运行中...长: "< "< } intGet() { returnwight*lenght; } voidSet(intl,intw) { lenght=l; wight=w; } private: intwight,lenght; }; voidmain() { AreaOne[4]={Area(10,10),Area(20,20),Area(30,30),Area(40,40)};//利用构造函数来初始化对象。 area有4个对象,对他们每个对象的值进行初始化! cout< 我们可以看到有4个构造和4个析构那是因为我们一共创建了4个对象的原因 One[0].Set(30,24);//可以调用set函数改变他们的参数值 cout< cout< cout< cout< } 6: #include usingnamespacestd; classArea { public: Area(intl,intw) { lenght=l; wight=w; cout<<"构造函数运行中...长: "< "< } ~Area() { cout<<"析构函数运行中...长: "< "< } intGet() { returnwight*lenght; } voidSet(intl,intw) { lenght=l; wight=w; } private: intwight,lenght; }; voidmain() { for(inti=0;i<10000;i++) { Area*One=newArea(3,4*i);//由于椎中内存比栈大。 所以使用栈来消耗内存空间是很不明智的。 我们可以使用堆来创建。 cout<<"One["< cout< deleteOne;//如果不删除,你在任务管理器中会发现内存飙升。 } }//这个程序演示了如果我们无法确定对象的数目或者对象很多的情况下我们可以把她放到椎中! 7: #include usingnamespacestd; classArea { public: Area() { lenght=0; wight=0; cout<<"不带参数的构造函数...\n"; } Area(intl,intw) { lenght=l; wight=w; cout<<"构造函数运行中...长: "< "< } ~Area() { cout<<"析构函数运行中...长: "< "< } intGet() { returnwight*lenght; } voidSet(intl,intw) { lenght=l; wight=w; } private: intwight,lenght; }; voidmain() { for(inti=0;i<10000;i++) { Area*One=newArea(3,4*i);//由于椎中内存比栈大。 所以使用栈来消耗内存空间是很不明智的。 我们可以使用堆来创建。 cout<<"One["< cout< deleteOne;//如果不删除,你在任务管理器中会发现内存飙升。 但是这里也有个缺陷。 因为这里的指针只能在FOR循环中作用,如果在FOR外面,那么着10000个对象中前面9999个对象我们都无法访问,如果要访问必须采用以下方法1-2 } /* Area*One=newArea[10000];1-2如这里。 for(inti=0;i<10000;i++) { One[i].Set(3,5*i); } cout< cout< delete[]One;使用[]one就可以删除数组名为one的所有元素对象 }//这个程序演示了如果我们无法确定对象的数目或者对象很多的情况下我们可以把她放到椎中! 8: #include usingnamespacestd; voidmain() { enumday{mon,tur,wen,thu,fri,sat,sun};//enum是枚举常量的关键字表示day为枚举常量后面是他们的初始化。 他们的值夜是从0开始到6结束 doubletem[sun+1]={82.5,96.2,44.6,45.7,22.1,77.2,75.9};//sun=66+1=7所以他有7个元素。 intday;//定义一个循环变量变量day for(day=0;day<=sun;day++) { cout<<"星期"< "< } }//定义枚举常量的来替代枯燥的数字变量能够让程序员很形象的理解该变量的作用,便以以后的调试。 9: #include usingnamespacestd; voidmain() { inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//这个是多维数组的定义和初始化。 中间的三个大括号编译器会自动忽略,你加不加都一样,只是为了方便演示而已! ,3X4=12所以要定义12个元素。 也可以看做3行4列。 for(inti=0;i<3;i++) { for(intj=0;j<4;j++) { cout<<"a["< "< } } }//二维数组的定义演示,这个排行元素的顺序也就是在内存中的排放元素的循序。 10: #include usingnamespacestd; voidmain() { chara[]={'p','r','o','g','r','a','m','\0'};//\0是字符串结束标志。 他一般都在字符串最后。 用以提示结束。 这样,我们可以不用在做for循环就可以使他输出完毕! cout< }//这个就是字符串的输出与定义 11: #include usingnamespacestd; voidmain() { charch[5][5]={{'','','*','',''},{'','*','*','*',''},{'*','*','*','*','*'},{'','*','*','*',''},{'','','*','',''}};//定义二维字符串数组。 输出一个图形 inti,j; for(i=0;i<5;i++) { for(j=0;j<5;j++) { cout< } cout<<"\n";//换行。 } } 12: #include usingnamespacestd; voidmain() { chara[12]={"HelloWorld"};//我们知道字符数组的定义和初始化太麻烦,所以要使用字符串的形式来定义这样就简单多了 cout< } 13: #include usingnamespacestd; voidmain() { chara[12]; cout<<"请输入11个或者11个以内的字符: "; cin.get(a,12);//字符在输入的时候比如直接使用cin>>来接受那么如果你输入的中间有空格那么就不会输出后面的部分那是因为他默认吧空格当作字符结束标志。 而你输入过长,会引起数组越界那么程序就会崩溃,所以使用cin.get来限制他一个参数是接受数组令一个是用来限制数组的长度还有一种叫gets()他可以不管你是否有空格都强制为连接一起的但是他没有限制长度功能。 cout<<"你输入的字符为: "< 从而不会报错 }//这就是字符串输入的一些问题 14: #include usingnamespacestd; voidmain() { chara[20]={"MyNameis"}; charb[]={"jack"}; cout< 一般在实际应用中都使用strcat_s相信你是用vc++2008的已经看出来了! cout< } 15: #include usingnamespacestd; voidmain() { chara[20]={"MyNameis"}; charb[]={"jack"}; strcpy_s(a,"Mick");//这个函数的作用是拷贝,也就是把她的第二个参数拷贝到第一个参数中然后在返回第一个参数的值,需要注意的是他也需要足够的空间还有一点就是第一个参数必须是数组第二个参数可以是数组或者字符串。 cout< 而且也是不安全的。 所以我改动了下 } 16: #include usingnamespacestd; voidmain() { chara[20]={"MyNameis"}; charb[]={"jack"}; cout< } 17: #include usingnamespacestd; voidmain() { chara[]={"MyNameis"}; _strupr_s(a);//这个函数的意思是把小写的字符全部转换为大写 cout< } 18: #include usingnamespacestd; voidmain() { chara[]={"MYNAMEIS"}; _strlwr_s(a);//这个函数的意思是把大写的字符转换为小写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学习 笔记 摘录
![提示](https://static.bdocx.com/images/bang_tan.gif)