自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 平衡二叉树(BST)总结及代码实现

每个结点都有一个作为搜索依据的关键码左子树上所有结点值小于根节点的值,右子树上所有结点值大于根结点的值如果对一棵二叉搜索树进行中序遍历,可以按从小到大的顺序将各节点的值排列起来typedef struct BstNode{ KeyType key; BstNode* leftchild; BstNode* parent; BstNode* rightchild;}BstNode,*BSTree;BstNode* Buynode(KeyType kx){ BstNode*s

2021-06-24 17:24:05 282

原创 二叉树要点总结及代码实现

二叉树或为空,或是由一个根节点加上两棵分别称为左子树、右子树互补相交的二叉树组成。存储结构:1、顺序存储结构:从上到下,从左到右依次编号(shuzu)

2021-06-17 09:32:55 239

原创 C++ auto关键字概念

auto根据表达的数据,自动识别类型;也可以推导函数的返回类型auto y=12.34;//自动将y识别成doubleint (*pfun)(int,int)=add;//名为add,传递参数为两个整型的函数auto x=add;//推导函数的返回类型

2021-06-02 16:20:38 140

原创 C++ 赋值兼容性原则

赋值兼容性总定义:在任何需要基类对象的地方都可以用公有派生类对象来代替。(把子给父)原因:从现实中来看,公有意味着“是一个”,学生是一个人,反之不能这样说。具体规则有三部分:using namespace std;class Person{ string id; string name;public: Person(string i, string na) :id(i), name(na){} ~Person(){}};class Student:public Perso

2021-04-21 11:12:27 1436

原创 C++ 友元概念、特点总结

友元破环了对象的封装特性,分为外部函数友元、成员函数友元以及类友元。一、外部函数友元若外部函数想访问私有成员,把它设置成友元函数。示例如下:class Int{private: int value;public: Int(int x = 0) :value(x){} ~Int(){} friend void fun(Int &it);};void fun(Int &it){ it.value = 10;}需注意的是,作为外部函数,本来没有this指

2021-04-14 17:08:43 968

原创 C++ 模板总结

一、模板定义能够接受任意类型的参数,是一种与类型无关的一般形式。其过程是在编译主函数时生成新的代码,是模板类型产生新的类型,生成具体类型,而不是用int替换Type分为函数模板与类模板,前者针对参数类型的不同,后者针对数据成员和成员函数类型的不同。作用是减少代码量。二、模板定义函数模板的一般形式:类模板的一般形式:...

2021-03-27 08:41:22 130

原创 C++ 移动构造与移动赋值

C++中的重点内容效率低下的原始方法String fun(){ String s("jiao"); return s;}int main(){ String s1=fun(); return 0;}使用原方法,需要通过临时变量构造新的对象,在拷贝构造之后还需要撤销,带来了额外的损耗。使用移动构建,就是把资源移动了,解决拷贝构造代价大问题。String(String&& s)//移动构建{str=s.str;s.str=nullptr;

2021-03-13 11:09:24 357

原创 C++ 浅拷贝与深拷贝

一旦类型有申请资源,需重写拷贝构造函数。class String{private: char *str;public: String(const char *s) { if (s != nullptr) { int len = strlen(s) + 1; str = new char[len]; strcpy_s(str, len, s); } else { str = new char[1]; *str = '\0'; } }

2021-02-05 10:43:09 83

原创 C++ 把引用作为返回值

class Object{private: int value;public: Object(int x = 0) :value(x){} ~Object(){} int GetValue() const{ return value; } void SetValue(int x){ value = x; } int &Value(){ return value; }//返回的是地址,是value的引用,也就是value本身 const int & Value() c.

2021-01-29 10:07:58 446

原创 C++ 引用与指针的区别总结

主要从两个方面谈论:一、从语法的方面谈论引用是别名,没有所谓的空引用;指针需要存放地址。指针++指向下一个变量的地址;引用++指向它所指之物的值。二、从汇编角度谈论引用就是一个指针,并且是一个自身为常性的指针。总的来说,引用的使用更舒服一些,用指针还需要考虑指针是否为空之类。...

2021-01-27 11:33:40 157

原创 C++ new与delete

new可以开辟单个对象,也可以开辟一组对象,如下面代码段所示:class Object{private: int value;public: Object(int x=0) :value(x) { cout << "construct object" << this << endl; } ~Object() { cout << "deconstruct object" << this << endl;.

2021-01-25 19:41:38 109

原创 C++ 构造函数与析构函数

一、构造函数进入主函数时,已经为对象分配了空间,但没有调用构造函数,空间中这个对象并没有产生。空间分配了不一定有对象,必须要调动构造函数int main(){ CGoods tea("Black tea",12,560); CGoods book("C++",98); CGoods car; CGoods obj();//被认定为函数的声明,不是对象 return 0;}在定义对象时,有括号,必须给出实参; 如果想调动缺省构造函数,必须没有括号。二、析构函数.

2021-01-13 15:51:43 184

原创 C++ this指针(函数如何知道处理的是哪个对象的数据)

类要经过三次编译第一次记录其数据成员;第二次记录其声明;第三次改写函数,把this指针加进去。this指向当前类型对象的指针,并且自身是一个常性。总结:this指针是类的成员函数里的一个属性,并不在对象里存在,当这个对象调动它的成员方法时,方法里由个参数是this。当成员方法调动完了,this指针自然而然没有了。成员方法被调动,this才显现;成员方法不调动,不显现。并不是说对象里有this指针,this指针是当前本身对象的地址。每个类的成员函数都将拥有一个this指针,..

2021-01-12 09:17:15 204

原创 C++与C语言的区别总结

一、输入输出二、引用(别名)三、内联函数(inline) 在C++中,为了解决一些频繁调用的小函数大量消耗栈空间,引入了内联函数,内联函数的处理方式就是在函数的调用点直接代码展开。 内联函数与普通函数的区别: 内联函数与static函数的区别: 内联函数与宏的区别:inline处理时机在预编译阶段,有安全检查和类型检查。宏的处理在预编译阶段,没有检查机制,只是简单的文本替换。四、函数参数的默认值五、函数的重载 函数的原型...

2021-01-07 08:57:32 170

原创 python-自适应提升算法的多种对比方法及混淆矩阵的计算

1.KNN算法#coding:utf-8from sklearn.neighbors import KNeighborsClassifierimport numpy as npfrom sklearn.metrics import confusion_matrix # 导入计算混淆矩阵的包import pandas as pdX_train=pd.read_excel('D:\\xtrain.xlsx', header=None)Y_train=pd.read_excel('D:\\yt

2020-12-28 20:06:54 435

原创 Linux 编译链接原理

一、编译链接过程 具体分为预编译、编译、汇编以及链接这四个过程。 (1)预编译:处理预编译指令;include展开;进行宏替换;删除所有注释。此过程结束后,生成.i文件。 (2)编译:进行词法、语法的解析;代码优化;汇总符号;生成汇编指令。此过程结束后,生成.s文件。 (3)汇编:将汇编指令翻译成二进制;生成各个section;生成符号表。此过程结束...

2020-10-24 09:51:33 198

原创 Linux 文件存储方式及基本操作指令的介绍

(一)Linux文件存储方式 Linux下所有文件都是从根目录(”/”)开始存储,它的存储结构是一个倒状树的结构。 /bin:命令对应的可执行文件 /etc:系统的配置目录->系统或者其他软件的配置文件 /mnt:临时挂载点 /boot:系统启动时所需要的核心镜像文件 /proc:虚拟目录,以...

2020-09-28 08:45:34 1348

原创 相似性度量方法(距离)总结

在做分类时常常需要估算不同样本之间的相似性度量,这时通常采用的方法就是计算样本间的距离。采用什么样的方法计算距离关系到分类的正确与否。距离的简介及python实现一、欧式距离# -*- coding: utf-8 -*-import numpy as npdef eucliDist(A,B): return np.sqrt(sum(np.power((A-B),2)))X=np.array([1,2,3,4])Y=np.array([0,1,2,3])print('Euc

2020-09-27 21:24:32 401

原创 C语言 字符‘0‘和‘\0‘ 以及整数0的区别

char c='0';char ch='\0';int n=0;一、字符'0'字符型为char,占一字节ASCII值实际上是48,内存中存放表示为00110000二、字符'\0'转义字符,一个字符串结束的标志;字符型为char,占一字节ASCII值为0,是一个字符串结束的标志。在内存中存放表示为00000000三、整数0整型为int,占四字节在内存中表示为00000000 00000000 00000000 00000000...

2020-09-23 10:07:00 10233

原创 C语言 sizeof关键字

一、定义及特点:在C语言中,sizeof()是返回一个对象或者类型所占的内存字节数。需要注意的是sizeof是关键字,而不是函数。在计算变量所占空间时,()可以省略;在计算类型大小时,不能省略。sizeof int;//errorsizeof i;//oksizeof(int);//oksizeof(i);//ok二、数组变量的sizeof为数组所占用字节数。需注意:" "占一个字节。三、指针变量的sizeof32位计算机中,指针变量的sizeof一定是4;64位计算机中,.

2020-09-22 17:19:34 585

转载 C语言指针:用变量a给出下面的定义

a) 一个整型数(An integer)int a; // An integerb) 一个指向整型数的指针(A pointer to an integer)int *a; // A pointer to an integerc) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)int **a; // A pointer to a pointer to an integerd) 一个有10个整型数的数组...

2020-09-15 19:39:32 514

原创 C语言 联合体相关知识点

一、联合体基本形式在C语言中,有一种与结构体关系密切的结构联合体,其基本形式如下所示:union Udata{ char cs[2]; short st;};union Udata x;二、在内存中的分布 联合体与结构体最大的不同在于在内存中的分布,结构体的成员之间不会相互影响,占用不同的内存空间;而联合体的各成员共享一段内存空间。x.cs[0]='a';x.cs[1]='b';x.st=0x1234; 执行上述操作,最...

2020-08-11 17:39:18 198

原创 C语言 结构体相关知识点

一、结构体基本概念 结构体将不同类型的数据进行整体封装,根据需求由用户来设定。这些成员之间都是有联系的,比如表示一个人的姓名、年龄性别等信息。如果它们被定义成独立的量,就无法说明它们之间的联系。 声明一个结构体类型的一般形式为:struct Student{ char id[8]; char name[10]; char sex[4]; int age;}; 其中,struct为结构体关键字,Student为结构体名,成...

2020-07-29 16:41:05 622

原创 C语言 const与#define的区别

一、const与define的有关概念 const关键字产生静态作用,它限定着一个变量不允许被改变,需要注意的是:const只修饰其后的变量,当const与一级指针结合的时候更需要注意。如下图所示:const int *p; //p可变,p指向的对象不可变int const*p; //p可变,p指向的对象不可变int *const p; //p不可变,p指向的...

2019-11-04 11:11:02 459

原创 数据结构 顺序表的实现

一、线性表的顺序存储结构 顺序存储结构是存储结构中的一种,顺序表首先是一种线性表,在此基础上要求逻辑结构上相邻的数据元素其物理存储结构也相邻,且表中的结点依次存放在计算机内存中一组地址连续的存储单元中,之间不能存在空隙,如下图所示: 将表中元素一个接一个存入一组连续的存储单元中,这种存储结构就是顺序结构。 只要确定了起始位置,表中任意的元素都...

2019-11-01 20:08:24 218

原创 C语言 静态关键字static

一、静态全局变量与静态局部变量 static是静态关键字。在全局变量前加上关键字static,该变量就被定义为静态全局变量。在局部变量前加上关键字static,该变量就被定义成一个静态局部变量。 我们从可见性和生存期这两个方面谈论它们之间的区别。 对全局变量和函数加static,将会影响它的可见性,生存期不会受到影响。对局部变量加static,不会影响它的可见性,生...

2019-10-28 17:57:03 1424

原创 C语言 strcpy字符串拷贝的实现

strcpy是一种C语言的标准库函数,strcpy把含有'\0'结束符的字符串复制到另一个地址空间,即把一串字符拷贝到另一个字符串中,返回值的类型为char*。除了直接使用标准库函数,我们还可以直接编写C语言程序来实现字符串的拷贝。 要想实现这个简单的功能,我们需要定义两个指针,分别指向两个字符串的首地址,每拷贝字符串中的一个字符指针后移一次,再拷贝下一个,直到完成整...

2019-10-12 16:37:22 4965

原创 C语言 基本架构

下图体现了c语言中最基本的运行过程: 整个过程可以简单描述为:1.将.c或.cpp文件进行预编译,形成.i文件,源文件还只是文本文件; 2.将.i文件进行编译,形成.o或.obj文件,此时文件是二进制文件; ...

2019-10-06 10:32:02 3402 1

原创 C语言 指针变量所包含的知识点

一、基本概念 int *p 相当于定义一个指针(地址)变量;*p为跳到p所指内容,是一个间接访问符,相当于解引用。从上图中的第七行开始,*pp跳到pp所指的内容,也就是p,把a的地址赋给它,a和p之间建立了某种联系,**pp是二次解引用,跳到p所指的内容也就是a,将值1000赋给它,以下同理再与b建立联系。二、调用函数的实例分析 如果我们需要用指针实现...

2019-07-06 12:56:27 850

原创 C语言 与进制相关的典型例题分析

1.假如在某系统中,等式15*4=112成立,则系统采用的是()进制(A)6 (B)7 (C)8 (D)9 2.假如在n进制下,下面的等式成立,567*456=150216,n的值是()(A)9 (B)10 (C)12 (D)18 一、问题描述 以上两道题所体现的基本思想一致,只是难度有别,可以先观察答案,不管答案难度如何,均可以先观...

2019-07-02 00:06:54 296 1

原创 C语言 数据的基本处理方法总结

给一个不多于5位的正整数,要求:求出它是几位数; 分别输出每一位数字; 按逆序输出各位数字,例如原数为321,应输出123一、问题描述及源程序 题目中体现了编程中常用的对数据进行简单处理的基本方法,核心是得到与丢弃,即输出我们想要的数字信息,丢弃某位的数字再重新运算来获取下一个我们想要的数字信息。 //第1问 统计一个整数n是几位数 int GetFigure(i...

2019-06-25 19:52:48 2042

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除