自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常见排序算法

1.冒泡排序基本思想在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。每一趟排序后的效果都是讲没有沉下去的元素给沉下去。主要思路:1.比较相邻的元素。如果第一个比第二个大,就交换它们两个。2.对每一个相邻元素做同样的工作,从开始第一对到结尾的每一对。在这一 点,最后的元素应该会是最大的数。3.针对多有的元素重复以上的步骤,除了最后一个。持续每次对越来

2022-05-06 14:27:16 359

原创 c++模板

一、什么是模板模板是C++中自动生成代码的技术。二、为什么使用模板问题:实现一个通用的排序算法。C语言:通过回调函数实现,使用者调用麻烦。C++语言:函数重载,需要为多种类型实现一个第一版本,还会导致代码段增加。C/C++语言:借助宏函数实现,类型检查不严格,频繁使用还会增加代码段。由于以上原因C++之父在C++中实现了模板技术,既能技术多种类也能兼顾严格的类型检查,能让程序员编程专注思考业务逻辑而不用关系数据类型。三、函数模板1、函数模板的定义template <typena

2022-04-24 23:07:44 123 4

原创 c++动态内存管理

首先我们看看 c 语言是如何进行动态内存分配的:c 语言主要是使用malloc / calloc / realloc 来进行内存申请的。malloc / realloc / calloc三者的共同点与不同点:共同点1、都是从堆上进行动态内存分配2、释放内存都是需要使用free函数来释放3、三者的返回值都是void*4、都需要强制类型转换5、都需要对申请出的空间判空(因为申请内存失败会返回空)不同点:1)void *malloc( size_t size );malloc的参数是用户所

2022-04-23 22:57:15 236 2

原创 二叉树详解

我们首先应该了解的就是树这种数据结构属于非线性结构,然后存储的数据具有一对多的关系,这是最最基本的概念了。几个概念名词要分清然后我们需要清楚关于树的一个关键性的概念名词。节点:什么是节点呢?这个节点也有叫做结点,这两个应该没有区别吧,我看过不少文章,有的叫做节点,有的叫做结点,我觉得节点更加合适,因为我们喜欢使用Node来定义一个节点,Node一般翻译过来就是节点二字。那啥是节点:简单来说,树结构存储的每一个元素都叫做一个节点。也就是在树这种结构中存储的元素都叫做节点,然后根据有些节点的

2022-04-23 00:00:09 2838

原创 c++类与对象

构造函数体赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。class Date{public: Date(int year, int month, int day) { _year = year; _month = month; _day = day; } private: int _year; int _month; int _day;};虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称作为类对象成员的初始化, 构

2022-04-22 19:22:32 64 1

原创 c++中四个默认函数

构造函数任务是初始化对象的内存空间。新对象被创建,由编译器自动调用构造函数,且在对象的生命周期之内只调动一次。不可以手动调用,类的成员方法依赖对象调用,即在构造函数完成后;构造函数的名字和类名相同,没有返回值;构造函数可以重载,实参决定了调用哪个构造函数;没有显示定义构造函数,编译器会提供一个默认的构造函数;构造函数不能用const来修饰。const可以修饰类的成员函数,但是该函数不能修改数据成员。构造函数也属于类的成员函数,但是构造函数是要修改类的成员变量、给成员变量做初始化,所以类的构

2022-04-21 20:16:34 101 1

原创 栈和队列

一、栈和队列的定义、区别,存在的意义1.栈的定义(1)栈:栈实际上是一种线性表,它只允许在固定的一段进行插入或者删除元素,在进行数据插入或者删除的一段称之为栈顶,剩下的一端称之为栈顶。其遵循的原则是后进先出。(2)栈的核心操作:三大核心操作,入栈,出栈,取栈顶元素(3)对于栈的形象理解:子弹的弹夹我们一定见过,子弹在被压入的时候就相当于是一个个元素,而弹夹就相当于是栈。先被压入的子弹是最后被打出的,先压入的元素是最后出来的,也就是后进先出。2.队列的定义(1)队列:首先队列也是一种特殊的线..

2022-04-10 18:58:37 683 3

原创 链表基本操作

链表和数组作为算法中的两个基本数据结构,在程序设计过程中经常用到。尽管两种结构都可以用来存储一系列的数据,但又各有各的特点。数组的优势,在于可以方便的遍历查找需要的数据。在查询数组指定位置(如查询数组中的第4个数据)的操作中,只需要进行1次操作即可,时间复杂度为O(1)。但是,这种时间上的便利性,是因为数组在内存中占用了连续的空间,在进行类似的查找或者遍历时,本质是指针在内存中的定向偏移。然而,当需要对数组成员进行添加和删除的操作时,数组内完成这类操作的时间复杂度则变成了O(n)。链表的特性,使其在

2022-04-05 17:32:37 1158 2

原创 c++类与对象

一什么是类1-1 程序设计的发展1-2 面向过程到面向对象1-3 类的定义1-4 构造函数析构函数二内存管理2-1 内存分布2-2堆和栈2-2-1 堆和栈区别2-2-2 new与delete三拷贝构造函数四类的组合4-1什么是类的组合4-2类组合的构造函数五继承5-1 继承与派生5-2 继承时的构造函数析构函数5-3 重写父类方法六多态与虚函数6-1什么是多态6-2 虚函数6-3 纯虚函数与抽象类一、什么是类1-1 程序设计的发展  我们知道程序的发展经过了大

2022-04-05 17:25:26 84

原创 c++入门

1.C++关键字相比于32个关键字的C语言,C++提供了63个关键字。asm do if return try continueauto double inline short typedef forbool dynamic_cast int signed typeid publicbreak else long sizeof typename throwcase en...

2022-04-03 22:05:48 83 1

原创 宏定义(c)

宏定义又称为宏替换、宏代换,简称“宏”,是C提供的三种预处理功能①的其中一种。其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率②。1.#define命令#define命令是C语言中的一个宏定义命令,它用来讲一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义(不带参数的宏定义),另一种是带参数的宏定义。(1)简单的宏定义格式:#define <宏名/标识符> <字符串&gt...

2022-03-25 23:30:38 1706

原创 文件操作(c)

一、文件概述C语言处理输入和输出,是采用“流“的形式,而且常常会有缓冲区,缓冲区的存在可以提高输入/输出处理的高效性,在程序中,当调用输入函数从外部文件中输入数据赋给程序中的变量时,这种操作称为“输入”或“读”; 例: printf();当调用输出函数把程序中变量的值输出到外部文件中时,这种操作称为“输出”或“写”。 例:scanf();对文件输入、输出方式也称“存取方式”。二、文件类型指针在C语言的缓冲文件系统中,用文件类...

2022-03-25 23:06:07 408

原创 六种库函数的实现

#include<stdio.h>#include<assert.h>char* strstr(const char* str1, const char* str2){ char* cp = (char*)str1; char* s1, * s2; if (!*str2) return((char*)str1); while (*cp) { s1 = cp; s2 = (char*)str2; while (*s1 && *s2 &a.

2022-03-20 00:10:16 85

原创 数据在内存中的存储

一、简单认识内存首先需要说明,内存是一种物理硬件,计算机中所有程序的运行都在内存中进行。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算。当运算完成,CPU将结果传送出来。与内存相对应的就是外存,内存外存各有特点,下面我来简单罗列一下两者的特点:内存:容量小,速度快,价格高,掉电后信息不能保存;外存:容量大,速度慢,价格低,掉电后信息可以保存;就是由于这些特点,计算机的工作必须由这两部分配合完成,例如:要运行一个exe文件,当你双击文件时这个二进制文件先从外存装

2022-03-16 21:57:12 466

原创 编程学习规划

我是来自陕西科技大学的一名学生,专业是信息与计算科学,班级是信息193,我想认真学习编程,先学习c语言,先打好基础,之后在努力学习后面的内容,认真过好每一天。

2021-11-19 22:39:05 83 1

空空如也

空空如也

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

TA关注的人

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