自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++对c语言的增强

c++在c语言的基础上,对语法函数等方面进行了补充增强,用以增强语言的健壮与可靠性。全局变量检测增强#include<stdio.h>int a=10;int a;#include<iostream>int a=10;int a;//error:redefinition of int 'a'对于上述代码实例,c语言中重新声明全局变量a,编译不会报错。而在c++中,会进行对全局变量进行检测。函数检测增强参数类型,函数调用参数,返回值检测增强#include&

2020-06-20 00:42:21 907

原创 c++基础:friend

概念友元,提供了一种普通函数或类成员函数,访问另一个类中的私有或保护成员的机制。能访问私有成员破坏了封装性友元关系是单向不可传递的友元声明的形式和数量不受限制优点:提高了程序的运行效率缺点:破坏了类的封装性和数据的透明性友元函数:普通函数对一个访问某个类中的私有或保护成员在类声明的任何区域中声明,定义在类的外部friend<类型><友元函数名>(<参数表>)友元函数只是一个普通函数,并不是该类的成员函数,可以在任何地方调用,友元函数中通过对象名来

2020-06-13 13:28:32 159

原创 c++基础:引用与指针

引用与指针区别引用指针必须初始化可以不初始化不能为空可以为空不能更换目标可以更换目标引用必须初始化,指针可以不初始化int &ptr;//不合法,没有初始化引用int *ptr;//合法,但ptr为野指针引用不能为空,指针可以为空//使用指针需要先判断指针是否为空指针,否则会引起程序崩溃void fun(int *p){ if(p!=null_ptr) *p=3; return ;}//引用不能为空,无需判断可以直接赋值voi

2020-06-12 13:05:51 155

原创 c++基础:sizeof

先给出结论:空类的大小为1字节。一个类中,虚函数本身、成员函数和静态数据成员都不占用类对象的存储空间。对于虚函数的类,不管有多少个虚函数,只有一个虚指针的大小。普通继承,派生类继承;1所有基类的函数与成员,按照字节对齐计算大小。虚函数继承,单继承或者是多继承,都是继承了基类的虚指针(32位操作系统4字节,64位操作系统8字节)。虚继承,继承基类的vptr。结论1:#include<iostream>using namespace std;class

2020-06-11 19:33:06 100

原创 c++基础:inline

定义内联函数的基本思想在于将每个函数调用他们的代码体来替换。优点没有函数栈帧的开销相比较宏来说,内联还会有代码,节约内存的同时还可以调试缺点内联会造成代码膨胀,程序运行过慢无法对程序库的内联函数进行二进制代码升级在类中定义内联函数#include<iostream>using namespace std;class A{public: void fun(int x);//声明后想要称为内联函数,必须在实现出加inline关键字 int add(int x,int y

2020-06-11 19:04:54 106

原创 c++基础:static

static关键字与不同类型结合时,具有不同的含义。静态变量函数中的静态变量当变量声明为static时,将在程序的生命周期内分配,多次调用该函数,静态变量的空间也只分配一次,传递上次调用变量的值,不会对变量计数进行初始化。#include<iostream>using namespace std;void test(){ static int x=0; cout<<x<<" "; x++;}int main(){ for(int i=0;i&l

2020-06-10 21:14:58 84

原创 c++基础:const

const修饰的类型其变量或对象的值是无法被更改。const作用1.定义常量const int a=1;2.类型检查const常量具有类型,编译器可以进行检查;#define宏定义没有数据类型,简单的字符串替换。3.防止修改,起保护作用const int 1=1;i++;//errorconst对象默认为文件局部变量未被const修饰的变量不需要extern显式声明;const常量需要显式声明,定义后无法被修改,所以定义时必须初始化。定义常量const int a=10;b

2020-06-09 21:04:41 84

原创 操作系统思维导图(一)

内容整理自,华中科技大学,苏曙光老师《操作系统原理》,可在MOOC课程学习相关课程。

2020-03-21 21:17:43 1348

原创 计算机网络思维导图(一)

思维导图的内容,均选自谢希仁老师出版的《计算机网络》第七版图书。

2020-03-01 15:32:57 510

原创 学习数据结构:二叉树的四种遍历

二叉树的遍历是指从根节点出发,按照某种次序依次访问二叉树中所有的结点,使每个结点被访问一次且仅被访问一次。前序遍历规则:若二叉树为空则返回,否则优先访问根结点,然后前序遍历左子树,再前序遍历右子树。如下图所示,遍历顺序为ABDGH-CEIF实现遍历的算法,可以采用递归,简洁明了。void PreOrdefTraverse(BiTree T){ if(T==NULL) retur...

2020-01-22 18:09:01 953

原创 学习数据结构:二叉树

二叉树的定义二叉树,是树的一种特殊结构。其特点是:①每个结点最多有两棵子树,不存在度大于2的结点。②左子树和右子树是由次序的,不能颠倒。特殊二叉树1、斜树所有结点都只有左子树的二叉树叫左斜树,同理结点只有右子树的叫右斜树。每一次只有一个结点,结点的个数与二叉树的深度相同。下面两个结构分别为左斜树和右斜树。2、满二叉树在一棵二叉树中,如果所有的分支结点都存在左子树和右子树,并且所...

2020-01-18 20:04:10 677

原创 学习数据结构:树

树的定义树是一种一对多的数据结构。在一任意非空的树中,有且仅有一个根结点,其余结点可分为互不相交的有限集,每个集合本身又是一棵树,称为根的子树。下图的结构子树之间相交了,就不符合树的定义。结点的分类:①结点拥有的子树个数称为结点的度。②度为0的结点称为叶结点或终端结点。③度不为0的结点称为非终端结点或分支结点,分支结点也称为内部结点。④树的度是树内各结点的度的最大值。树的层次,从根...

2020-01-18 18:20:55 146

原创 学习数据结构:队列

队列的定义队列只允许在尾部插入元素,头部删除元素的线性表。是一种先进先出的插入删除模式,删除的一端称为队尾,插入元素的一端为队头。队列的顺序存储设一个队列有n个元素,则下标为0的一端就是队头。插入队列,就是在当前队尾增加一个元素,时间复杂度为O(1)。而当出队列时,从下标为0的位置进行操作,之后每个元素都向前移动一位,时间复杂度为O(n)。但是,从实际情况出发,队头不一定要从队列下标为0的位...

2019-12-18 17:26:54 431

原创 学习数据结构:循环链表与静态链表

一、循环单链表首尾相接的单链表,在单链表的基础上,把单链表的最后一个结点的指针域,从NULL指向头结点或者第一个结点。判断循环单链表的条件与单链表的条件差异不大void List(ListLink head){ ListLink p; p=head; while(p->next!=NULL)//单链表最后一个结点指针域为NULL p=p->next; wh...

2019-12-15 00:34:36 187

原创 学习数据结构:线性表的链式存储结构

3、线性表的链式存储结构线性表顺序存储结构缺点是插入和删除元素,比较麻烦,需要移动元素。链式存储结构,可以插入删除元素,而不用移动其他元素。用一组任意的存储单元存储线性表的数据元素,可以是连续的,也可以是不连续的,这些数据元素可以存在内存未被占用的任意位置。每一个数据元素,除了存储数据信息外,还会存储下一个元素的内存地址,用一个指针指向这个地址,每个元素与所存的指针构成了线性链表的一个结点。...

2019-12-14 14:33:53 832

原创 学习数据结构:线性表的顺序存储结构

1、线性表的定义:多个相同数据类型元的素有限序列。首先是一个序列,元素之间有先后顺序,当有多个元素的时候,第一个元素没有先驱元素但有后继元素,最后一个元素没有后继元素但有先驱元素,其他元素都是有先驱和后继元素,且满足只有一个先驱和一个后继元素。当元素个数n=0时,为空表。2、线性表结构体定义#DEFINE MAXSIZE 100typedef int ElemTypetypedef st...

2019-12-13 20:22:27 214

原创 学习数据结构:栈

1、栈的定义:先进后出,只能在尾部进行插入删除操作的线性表。一般称尾部为栈顶,另一端称为栈底。表中的元素据有线性关系,前驱后继。插入数据的操作称为入栈,删除数据的操作称为出栈。注意:先进的元素不一定只能后出,例如插入元素1,2,3。1进1出,2进2出,3进3出 出栈顺序为1->2->31进2进,2出1出,3进3出 出栈顺序为2->1->31进2进,3进3出...

2019-12-13 14:39:37 254

空空如也

空空如也

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

TA关注的人

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