![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 479 阅读 · 0 评论 -
c++ 队列实现
/*队列的链表实现*/#includeusing namespace std;templatestruct Node{ Node *next; T data; Node() { next=NULL; } Node(T element) { this->data=element; next=NULL; }};templateclass Que原创 2015-04-18 16:33:42 · 400 阅读 · 0 评论 -
模板
一、求两者中较大数模板templateT 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 · 255 阅读 · 0 评论 -
c++ 栈的数组实现
/*栈的数组实现*/#includeusing namespace std;#define MAXSIZE 10;templateclass Stack{public: //默认构造函数 Stack(); Stack(size_t maxElements); Stack(T data[],size_t maxElments); ~Stack(); //入栈原创 2015-04-18 21:39:38 · 1861 阅读 · 1 评论 -
c++ 栈的链表实现
/*栈的链表实现*/#include#includeusing namespace std;templatestruct Node{ T date; Node *next; Node() { next=NULL; } Node(T element) { this->date=element; next=NULL; }};templatecl原创 2015-04-18 19:04:33 · 872 阅读 · 0 评论 -
c++ 链表(模板)简单实现
/*模板*/#include using namespace std;templatestruct Node{ T data; Node *next; Node() { next=NULL; } Node(T element) { this->data=element; next=NULL; }};templateclass List{p原创 2015-04-18 15:29:27 · 623 阅读 · 0 评论 -
快排
快排基本思想通过一趟排序将要排序的数据分割成独立两部分,其中一部分的所有数据都要比另一部分的所有数据都要小,然后在按此方法对这两部分数据进行快速排序。设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是原创 2015-03-24 22:02:22 · 338 阅读 · 0 评论 -
简单文件输入输出
一 、向一个文件写入数据为了向一个文档写入数据,需要创建一个ofstream类型的对象:ofstream output;为了指定要写入的文件。需要调用output对象的open函数:如下所示output.open("number.txt"); 此语句会创建一个名为number.txt的文件,如果文件已经存在,其内容会被销毁,并创建一个新的文件。#in原创 2014-12-26 14:02:25 · 422 阅读 · 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 · 310 阅读 · 0 评论 -
栈实现简单的四则运算表达式
请输入正确的表达式:支持 + - * / ^ (),并在末尾录入 # 字符#include#include#include#include#include#includeusing namespace std;stack opnd; //操作数栈stack optr; //算术符栈string expression; //存放表达式//返回两算术符a和b的优先关系char原创 2015-01-19 17:00:29 · 337 阅读 · 0 评论 -
汉诺塔
分析汉诺塔问题就将一组确定数量的,大小不同的盘子从一个塔移动到另外一个塔上,移动过程中要遵循如下规则:(1)有n个盘子,标号分别为1,2,3,......,n,有三个塔,标记为A,B,C(2)任何时候,都不允许较大的盘子放在较小的盘子上面(3)初始时,所有盘子都在A上(4)每个步骤只能移动一个盘子,而且只能移动某个塔上最上面的盘子问题的最终目标是把所有的盘子从A移动到B原创 2014-12-28 16:10:49 · 440 阅读 · 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 · 410 阅读 · 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 · 367 阅读 · 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 · 448 阅读 · 0 评论 -
二分搜索法
二分搜索法要求数组中的元素必须是有序存放的,在这假定数组元素按升序存放。比较结果的三种情况: (1)如果关键字小于中央元素,则继续在数组中的前部分进行搜索。 (2)如果关键字等于中央元素,则搜索结束,找到匹配元素。 (3)如果关键字大于中央元素,则继续在数组中的后半部分搜索。#include using namespace std;int binarySearch(int lis原创 2014-12-27 12:01:05 · 420 阅读 · 0 评论 -
深拷贝与浅拷贝
C++中对象的复制就如同“克隆”,用一个已有的对象快速地复制出多个完全相同的对象。一般而言,以下三种情况都会使用到对象的复制:(1)建立一个新对象,并用另一个同类的已有对象对新对象进行初始化,例如:[cpp] view plaincopyclass Rect { private: int width; int height; };转载 2015-04-19 17:05:22 · 298 阅读 · 0 评论