
c++学习笔记
文章平均质量分 66
typistw
这个作者很懒,什么都没留下…
展开
-
数字金字塔
#include #include using namespace std; /*每个数字占三个位置,如果是一位数前面有两空格,两位数前面就一个空格,在第你 n 行中,有 (total-n)*3 个前导空格 */ int main() { int number; cin >> number; while( number 14 ) {原创 2014-12-26 13:49:42 · 512 阅读 · 0 评论 -
c++ 队列实现
/* 队列的链表实现 */ #include using namespace std; template struct Node { Node *next; T data; Node() { next=NULL; } Node(T element) { this->data=element; next=NULL; } }; template class Que原创 2015-04-18 16:33:42 · 429 阅读 · 0 评论 -
模板
一、求两者中较大数模板 template T maxValue(T value1,T value2) { if(value1>value2) { return value1; } else { return value2; } } int main() { cout<<"Maximum between 1 and 3 is "<<maxValue(1, 3)<<endl;原创 2014-12-30 11:39:14 · 284 阅读 · 0 评论 -
c++ 栈的数组实现
/* 栈的数组实现 */ #include using namespace std; #define MAXSIZE 10; template class Stack { public: //默认构造函数 Stack(); Stack(size_t maxElements); Stack(T data[],size_t maxElments); ~Stack(); //入栈原创 2015-04-18 21:39:38 · 1919 阅读 · 1 评论 -
c++ 栈的链表实现
/* 栈的链表实现 */ #include #include using namespace std; template struct Node { T date; Node *next; Node() { next=NULL; } Node(T element) { this->date=element; next=NULL; } }; template cl原创 2015-04-18 19:04:33 · 932 阅读 · 0 评论 -
c++ 链表(模板)简单实现
/*模板*/ #include using namespace std; template struct Node { T data; Node *next; Node() { next=NULL; } Node(T element) { this->data=element; next=NULL; } }; template class List { p原创 2015-04-18 15:29:27 · 661 阅读 · 0 评论 -
快排
快排基本思想 通过一趟排序将要排序的数据分割成独立两部分,其中一部分的所有数据都要比另一部分的所有数据都要小,然后在按此方法对这两部分数据进行快速排序。 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是原创 2015-03-24 22:02:22 · 359 阅读 · 0 评论 -
简单文件输入输出
一 、向一个文件写入数据 为了向一个文档写入数据,需要创建一个ofstream类型的对象: ofstream output; 为了指定要写入的文件。需要调用output对象的open函数:如下所示 output.open("number.txt"); 此语句会创建一个名为number.txt的文件,如果文件已经存在,其内容会被销毁,并创建一个新的文件。 #in原创 2014-12-26 14:02:25 · 454 阅读 · 0 评论 -
异常处理
//一个简单例子 int main() { int number1,number2; while(1) { cout<<"Enter two number"<<endl; cin>>number1>>number2; try { if(number2==0) throw number1; cout<<number1<<" / "<<number2<<"原创 2014-12-30 10:56:35 · 340 阅读 · 0 评论 -
栈实现简单的四则运算表达式
请输入正确的表达式:支持 + - * / ^ (),并在末尾录入 # 字符#include #include #include #include #include #include using namespace std; stack opnd; //操作数栈 stack optr; //算术符栈 string expression; //存放表达式 //返回两算术符a和b的优先关系 char原创 2015-01-19 17:00:29 · 365 阅读 · 0 评论 -
汉诺塔
分析 汉诺塔问题就将一组确定数量的,大小不同的盘子从一个塔移动到另外一个塔上,移动过程中要遵循如下规则: (1)有n个盘子,标号分别为1,2,3,......,n,有三个塔,标记为A,B,C (2)任何时候,都不允许较大的盘子放在较小的盘子上面 (3)初始时,所有盘子都在A上 (4)每个步骤只能移动一个盘子,而且只能移动某个塔上最上面的盘子 问题的最终目标是把所有的盘子从A移动到B原创 2014-12-28 16:10:49 · 476 阅读 · 0 评论 -
多态和虚函数
先看两个例子 class C { public: string toString() { return "class c"; } }; class B : public C { string toString() { return "class B"; } }; class A : public B { string toString() { return "cl原创 2014-12-29 12:00:57 · 430 阅读 · 0 评论 -
数组排序
选择排序 找到列表中最大的元素,将其放置列表末尾。然后在剩余元素中求最大元素,将其放在列表次末尾(最大元素之前),依次类推,直到列表只剩一个元素为止。 void selectionSort(double list[],int arraySize) { for(int i=arraySize-1;i>=1;--i) { double max=list[0]; int maxIndex原创 2014-12-27 12:53:39 · 388 阅读 · 0 评论 -
最大公约数
欧几里得方法:只要两数不相等,就反复用大数减去小数,直到相等为止。 #include #include using namespace std; int argc(int x,int y) { while ( x != y ) { if( x > y ) x= x- y; else原创 2014-12-26 12:04:59 · 477 阅读 · 0 评论 -
二分搜索法
二分搜索法要求数组中的元素必须是有序存放的,在这假定数组元素按升序存放。 比较结果的三种情况: (1)如果关键字小于中央元素,则继续在数组中的前部分进行搜索。 (2)如果关键字等于中央元素,则搜索结束,找到匹配元素。 (3)如果关键字大于中央元素,则继续在数组中的后半部分搜索。#include using namespace std; int binarySearch(int lis原创 2014-12-27 12:01:05 · 444 阅读 · 0 评论 -
深拷贝与浅拷贝
C++中对象的复制就如同“克隆”,用一个已有的对象快速地复制出多个完全相同的对象。一般而言,以下三种情况都会使用到对象的复制: (1)建立一个新对象,并用另一个同类的已有对象对新对象进行初始化,例如: [cpp] view plaincopy class Rect { private: int width; int height; };转载 2015-04-19 17:05:22 · 322 阅读 · 0 评论