c++
文章平均质量分 71
chenmiao0924
未来的程序猿
展开
-
C++之继承篇
1.继承权限继承权限与访问权限 public(公有访问)protected(保护访问)private(私有访问)public(公有继承)继承后变成public(公有访问)继承后变成protected(保护访问)继承后不可访问protected(保护继承) 继承后变成protected(保护访问)原创 2017-02-27 09:16:43 · 419 阅读 · 0 评论 -
二叉树的三种遍历(前序,中序,后序)
void PreOrder() { _PreOrder(_pRoot); cout<<endl; }首先,创建二叉树//-------------孩子表示法---------------//节点template struct BinaryTreeNode{ BinaryTreeNode(const T& value):_value(value),_pLeft原创 2017-05-07 22:10:58 · 816 阅读 · 0 评论 -
对称矩阵的基本操作及其压缩存储
#includeusing namespace std;templateclass SymmetricMatrix{public: SymmetricMatrix(int* a, size_t N):_row(N),_col(N) { size_t index=0; _pData =new T[N*(N+1)>>1]; for(int i=0;i<N;i++) {原创 2017-05-04 21:13:21 · 737 阅读 · 0 评论 -
稀疏矩阵的基本操作
#include#include#include#includeusing namespace std;template class SparseMatrix{public: //构造 SparseMatrix() {} SparseMatrix(int* arr,size_t row,size_t col,const T& invalid):_row(row),_col原创 2017-05-04 21:11:15 · 1826 阅读 · 0 评论 -
Perm--全排列函数
代码如下:void Perm(int* arr,int size,int N){ if(size == N) { for(size_t i=0;i<size;++i) cout<<arr[i]; cout<<endl; } else { for(size_t i=N;i<size;++i) { std::swap(arr[i],arr[N])原创 2017-04-19 14:20:30 · 7715 阅读 · 2 评论 -
递归判断一个字符串是否回文
回文:例如123321,12321这样的。那么如何判断一个字符串是否是回文呢?以下用两种方法解决这个问题。第一种,用循环。代码如下:bool IsPalindereme(char* str,int size) { int begin=0;//字符串第一个下标 int end=size-1;//字符串最后一个下标 while(begin<end) {原创 2017-04-17 14:05:46 · 3244 阅读 · 1 评论 -
c++ --------- 多态下的菱形继承,菱形虚拟继承
测试代码: #include using namespace std;class B{ public: virtual void FunTest1() { cout<<"B::FunTest1()"<<endl; } int _b;};class C1:public B{ public: virtual void FunTest1() { co原创 2017-04-12 20:46:14 · 507 阅读 · 1 评论 -
c++ 之多态篇(上)
对象类型: 多态:是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为。在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体。也可以这样说就是实现了“一个接口,多种方法”。 静态多态:程序编译时确定具体的工作 编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推 断出要调用那个函数,如果有原创 2017-04-10 11:02:08 · 361 阅读 · 0 评论 -
c++ 之多态篇(下)----虚表,多态调用
纯虚函数定义:在成员函数的形参列表后面写上=0,则成员函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实 例化出对象。纯虚函数在派生类中重新定义以后,派生类才能实例化出对象。 测试代码:class Base//抽象类{public: virtual void FunTest()=0;//纯虚函数};class Dervi原创 2017-04-11 11:25:01 · 369 阅读 · 0 评论 -
c++ string类深拷贝其他版本(简洁版,引用计数版,写时拷贝版)
简洁版:class String{public: String(char* pStr="") { if(pStr==NULL) { _pStr=new char[0]; _pStr='\0'; } else { _pStr=new char[strlen(pStr)+1]; strcpy(原创 2017-03-30 15:12:58 · 422 阅读 · 0 评论 -
c++ string类深拷贝
class String{public: String(char* pStr="") { if(pStr==NULL) { _pStr=new char[0];//为了统一使用delete[]释放空间 _pStr='\0'; } else { _pStr=new char[strlen(pStr)+1];//先拷贝同样大的空间 strcpy(原创 2017-03-30 11:21:50 · 744 阅读 · 0 评论 -
通用版 之冒泡排序
#include templateclass Greate{public: bool operator()(const T& left,const T& right) { return left>right;}};templateclass Less{public: bool operator()(const T& left,const T& right) {r原创 2017-03-21 16:18:04 · 537 阅读 · 0 评论 -
static 与extern的区别
static:一、在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。1、定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。 a.在全局区分配内存。 b.如果没有初始化,其默认值为0. c.该变量在本文件内从定义开始到文件结束可见。2、定义局部静态变量:在局部变量前面加转载 2017-09-09 17:07:57 · 623 阅读 · 0 评论