自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 c++ 多态原理详解

1.虚函数表首先我们来看一段代码输出为多少?#include<iostream>using namespace std;// 这里常考一道笔试题:sizeof(Base)是多少?class Base{public: virtual void Func1() { cout << "Func1()" << endl; }private: int _b = 1;};int main() { Base bs; cout << siz

2022-05-03 17:13:37 1222

原创 c++ 多态详解

c++多态详解

2022-05-02 21:10:41 5453

原创 排序算法总结

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。我们所常见的排序算法大概分为以下几种下面来详细介绍以下以上几种排序算法的具体实现1.插入排序插入排序分为直接插入排序和希尔排序.首先我们来看看直接插入排序.1.1直接插入排序直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。下面举个例子具体讲讲上面那句话是什么意思.相信大家都打

2022-03-09 10:20:07 447

原创 ❤ C语言--链表----数据结构 ❤

文章目录1.链表的概念2.链表的实现2.1链表的结构2.2链表的初始化2.3插入节点2.4删除节点2.4.1通过位置来进行删除2.4.2通过数据来删除节点2.5打印链表2.6清空链表2.6.1不清空头结点2.6.2清空头结点1.链表的概念链表是一种基础的数据结构,链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。我们每次只分配出一个节点的内存。链表使用指针将各个节点组合到一起,这样就形成了一个连一个的链式的结构,这

2021-10-07 20:48:22 193

原创 ❤❤❤❤顺序表的实现(c语言)----数据结构

对于数据结构来说,最基本的就是动态数组了,那么动态数组到底该怎么来实现它呢,可能对于刚学习数据结构的人来说还是有点难理解的,下面的就具体来写一写动态数组的实现过程。首先我们来想一下对于一个动态的数组,它要能实现什么功能呢? 动态数组相比静态数组最主要的功能那当然是可以动态开辟数组的长度了,当然还包括可以删除某个数组中的元素。下面我们来具体实现这些功能。1.定义数组的结构体对于一个动态开辟的数组,那么我们怎么能做到呢,这里我们首先想到可能就是用一个结构体来封装一些数组的属性, 从而来达到我们想要的操作。

2021-10-06 20:47:56 160

原创 栈的实现(c语言)--- 数据结构

1. 栈的简介1.1栈的特点栈(Stack)是一种线性存储结构,它最大的特点就是:栈中的数据遵循先进后出的原则,想要在栈中插入和删除数据,只能在栈顶操作。1.2栈的相关概念栈的相关概念:1.栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。2.入栈:栈的插入操作,叫做进栈,也称压栈。3.出栈:栈的删除操作,也叫做弹栈。下面我将介绍栈的两种实现结构,一种是栈的顺序存储,一种是栈的链式存储。2.栈的顺序存储一般对于栈的操作主要有以下几个部分:1.初始化栈,也就是创建出一个栈的结

2021-10-05 20:30:46 546

原创 双链表的实现(C语言)---数据结构

文章目录1.定义链表的结构体2.链表的插入2.1 链表的尾插2.2链表的头插2.3任意位置插入3.链表节点的删除3.1链表的尾删3.2链表的头删3.3任意位置的删除4.链表的修改4.1链表的查找4.2链表数据的修改5.清除链表5.1清理链表中的所有节点,不包括头结点5.2清理链表中的所有节点,包括头结点链表可以说是数据结构中最基础的一部分,它分为单链表和双链表,他们的区别在于,单链表的结构中只有一个节点来指向它的后面的元素,而双链表中有两个节点,一个节点可以指向它前面的元素,一个可以指向它后面的元素,这就

2021-10-03 14:15:14 579

原创 (笔试常考题)常用字符串函数具体实现以及注意事项

文章目录1.strlen函数实现及介绍2.strcpy函数实现及介绍3.strcmp函数实现及介绍4.strcat函数实现及介绍5.strstr函数实现及介绍6.memcpy函数实现及介绍7.memove函数实现及介绍1.strlen函数实现及介绍1.字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。2.参数指向的字符串必须要以 ‘\0’ 结束。3.注意函数的返回值为size_t,是无符号的( 易错 )int my_strl

2021-09-23 19:24:45 164

原创 KMP算法

1.KMP算法介绍在计算机科学中,Knuth-Morris-Pratt字符串查找算法(简称为KMP算法)可在一个字符串 S 内查找一个词 W 的出现位置。 一个词在不匹配时本身就包含足够的信息来确定下一个匹配可能的开始位置,此算法利用这一特性以避免重新检查先前匹配的字符。是一个效率非常高的字符串匹配算法2.KMP算法的解析KMP算法主要分为两步:第一步主要是求一个next数组,这个数组中存放者子串匹配失败后下一次开始匹配的位置。第二步就是实现KMP算法的主体2.1 怎么求next数组呢?首先我

2021-09-18 13:49:21 85

原创 函数栈帧的创建与销毁

1.函数栈帧的概念函数栈帧:使用每一个函数都要在栈区开辟一块空间.栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的 一种数据结构。对于栈,我们都知道栈是由高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,每个栈帧中维持着所需要的的各种信息。寄存器ebp指向当前栈帧的底部(高地址),寄存器esp指向当前栈帧的顶部(低地址)。这样我们就了解了寄存器ebp和寄存器esp中存放的是地址,这两个地址是用来维护函数栈帧的。比如:调用main函数, 我们为main函数分配栈帧空间, 那么栈帧

2021-09-11 14:32:42 1657 1

原创 (写的很详细哟)Linux常用的基本指令

文章目录linux常用指令:vi编辑器linux常用指令:pwd :显示当前所在路径ls :显示当前目录下的文件显示家目录下的文件​ -l (long的缩写)显示目录下文件的更详细的信息(文件权限,文件最后修改时间,文件大小)​ -a (all的缩写)显示了隐藏文件​ -h (human - able的缩写),将文件大小以K(KB) , M(MB) ,G(GB)来表示cd

2021-07-20 19:45:01 113

原创 C++中STL常用算法

1.常用的遍历算法(1)for_each将仿函数f施行于[first, last)区间内每一个元素身上。f不可以改变元素内容,因为first和last都是InputIterator,不保证接受赋值行为。如果想要修改内容,应该使用算法transform(),f可以返回一个值,但该值会被忽略。f可以是仿函数,也可以是普通函数.使用该算法要包含#include < algorithm >头文件include <iostream>using namespace std;#incl

2021-07-17 11:34:41 178

原创 C++ 演讲比赛流程管理系统设

1.功能分析要求有12个人参加比赛,将12个人分为两组,进行第一轮比赛,然后每个参赛人员有10个评委打分,去掉最高和最低分后,求出每个人的平均分,然后去出每组中的分数最高的三个人. 接着6人又进行第二轮比赛,前三名取得胜利.2.具体实现部分首先建立一个speechManage的类,里面存放演讲比赛流程实现的各个函数的申明.class SpeechManage{public: //构造函数 SpeechManage(); //显示菜单 void showmenu(); //退出比赛

2021-07-06 20:04:19 189

原创 C语言实现简易日历(附源码)

C语言实现简易日历首先来看程序运行的结果,首先会提示用户输入年份和月份,就会以日历的形式打印出这个月的信息.下面来看看程序设计源码:#define _CRT_SECURE_NO_WARNINGS 1 //避免vs中scanf报错#include <stdio.h>int main(){ int year = 0; int month = 0; printf("请输入年份:"); scanf("%d", &year); printf("请输入月份:"); scan

2021-06-29 19:07:15 10160 7

原创 c语言实现关机小程序,学会了快去恶搞你的小伙伴吧

首先我们来看看程序运行的效果:程序运行后,系统会提示你的电脑将一分钟后关机然后我们需要输入一些我们自己设置的内容,电脑才会取消关机.我这里设置的是:我是猪.只有输入我是猪之后,电脑才会取消自动关机,不然电脑在一分钟之内就会关机.下面介绍一下代码是怎么实现的:首先说一下要包含的头文件:#include <stdio.h>#include <string.h>#include <windows.h>#include <stdlib.h>下面是

2021-06-27 11:12:03 617 1

原创 指针中容易混淆的概念以及常见笔试题

指针文章目录指针1.字符串指针2.指针数组3.数组指针4.数组参数,指针参数5.函数指针 - 指向函数的指针6.函数指针数组7.库函数qsort的用法: qsort(void* p,int num1 , int num2 , int (*cmp)(counst void* e1, counst void* e2) )8.指针和数组练习题1.字符串指针注: void* 类型的指针可以接收任意类型的指针- void 类型的指针不能进行解引用的操作,也不能进行加减整数的操作*int main(){

2021-06-22 19:45:35 180

原创 C语言中的整型提升

C语言中的整型提升提到整型提升,可能刚学c语言的小伙伴们很头疼这个知识点吧,下面我就我的理解简单分析一下整型提升是怎么回事.首先还是介绍一下整型提升的概念:​ c的整型算术运算总是至少以缺省整型类型的精度来进行的. 为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升.整型提升是按照变量的数据类型的符号位来进行提升的.可能小伙伴们看到这个说明还是一头雾水,那么下面我通过一个具体的例子来说说整型提升到底是怎么回事.(注意看我里面注释的说明哦)i

2021-06-11 20:56:03 1151 5

原创 结构体大小的计算方法

结构体大小的计算方法相信来看这里的小伙伴们,应该都知道了计算一些基本类型的数据的大小。比如,int 占4个字节 ,char 占1个字节 ,short 占2个字节等等。那么结构体的大小怎么计算呢?要想知道结构体大小是怎么计算的,我们必须知道结构体的对齐规则,对齐规则主要包括一下4点:1.第一个成员在与结构体变量偏移量为0的地址处。2.其他成员变量要对齐到对齐数的整数倍的地址处。对齐数 = 编译器默认的一个对齐数与该成员大小的较小值。 VS中默认的值为83.结构体总大小为最大对齐数(每个成员变量都有

2021-06-09 20:59:29 2461 5

原创 C语言操作符详解

C语言操作符详解1C语言位操作符1.1右移操作符 >>右移操作符包括下面两种1.算术右移右边丢弃,左边补原符号位(常用这种)2. 逻辑右移右边丢弃,左边补0注:右移有相当于除以2的效果int main(){ //整数的二进制有:源码,反码,补码 //正数的二进制源码反码补码相同 //储存到内存的是补码,移位操作的是二进制中的补码 int a=16; //源码为:00000000 00000000 00000000 00010000 首位0代表正数 int b=

2021-06-07 20:01:23 130 4

原创 vs中scanf报错的解决方法

vs中scanf报错的解决方法在我们刚使用vs时,在使用scanf函数时会遇到下面的这种情况,会出现这种情况的,发生这种情况的原因是VS认为scanf这个函数不安全产生的,那么怎么解决呢,下面我简单说几种解决方法。1.方法一:(我推荐使用这种方法)首先找到你安装VS的路径然后按下面路径找到E:\VS2019\Common7\IDE\VC\VCProjectItems 文件夹在里面找到newc++file.cpp这个文件 ,然后将这个文件复制到桌面上用vs打开,然后将#define _CRT_S

2021-06-05 11:09:30 6768 2

演讲比赛流程管理系统.rar

熟悉C++中的STL中的常用容器和算法

2021-07-06

空空如也

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

TA关注的人

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