自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 关于函数模板 详解

用来定义模板参数切记:不能使用struct代替class),对于模板函数的使用,以供调用。,对于字符类型也是如此。,称为函数模板的。。这里是不能通过编译的,因为实参中的参数类型不同,编译器不知道应该推演出哪个类型,如果想通过编译,这里要告诉编译器听谁的,是实参1,还是实参2.该语句不能通过编译,因为在编译期间,当编译器看到该实例化时,需要推演其中的实参类型 ,通过实参a1将T推演为int,通过实参d1将T推演为double类型,但模板参数列表中只有一个T。

2024-11-24 15:40:59 824

原创 C++ 关于内存管理 超详细解析!

答案是不需要,因为calloc开辟空间后,使用realloc扩容,可能在原空间上调整也可能在新的地方开辟一块新空间,如果在原空间上调整扩容,那么p3指针指向的就是原空间地址,释放p3也就释放了原空间。另一种情况,扩容是在新的空间,原空间不够大,那么p3指针指向的是新空间地址,在编译器开辟新空间前,p2指向的空间会被释放,编译器开辟新的满足要求的空间,p3指向的新空间地址,所以无论是哪种情况都不需要free(p2)。申请空间失败,尝试执行空 间不足应对措施,如果改应对措施用户设置了,则继续申请,否则抛异常。

2024-11-24 14:55:23 659

原创 C++ 类与对象(下篇)详解 再谈构造函数,explicit关键字,static成员,友元函数,内部类,匿名对象

定义

2024-11-20 13:52:19 885

原创 C++ 关于类与对象(中篇)类的6个默认成员函数 构造函数,析构函数,拷贝构造函数,赋值运算符重载

如果类中未涉及到资源管理,赋值运算符是否实现都可以;一旦涉及到资源管理则必须要实现。

2024-11-17 23:06:17 649

原创 C++ 关于类与对象(中篇)一篇详解!

日期类的比较不是单一的比较,要对年月日分别进行比较分情况比较但这样对函数命名如果换一个类那么名字又不一样,编译器不知道自定义类型怎么比,我们自己写一个知道怎么比,让编译器调用就好,怎么样才能使代码可读性更好,更多的人理解这是比较大小的函数呢?这里引出一个特殊的成员函数。,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。函数名字为:关键字。operator后加需要重载的运算符符号,"" , "=="对于内置类型,编译器会直接展开。

2024-11-15 17:28:10 340

原创 C++ 关于类与对象(中篇) 类的6个默认成员函数 详解

默认的拷贝构造函数对象按内存存储按字节序完成拷贝

2024-11-15 15:15:10 298

原创 C++ 关于类与对象(中篇) 类的6个默认成员函数 详解

构造函数是特殊的成员函数,不能以常规的情况理解,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象,而是初始化对象。

2024-11-12 10:59:05 301

原创 C++ 关于类与对象(上篇) 详解

3.类的定义上面结构体的定义,在C++中更喜欢用class来代替。类体:由成员函数和成员变量组成一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。1.声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。2.类声明放在.h文件中,成员函数定义放在.cpp文件中。

2024-11-11 19:51:42 1079

原创 C++ 关于 指针空值nullptr(C++11)和NULL的使用详解

不论采取何种定义,在使用空值的指针时,都不可避免的会遇到一些麻烦在C++98中,字面常量0可以是一个整形数字,也可以是无类型的指针(void*)常量,但是编译器默认情况下将其看成是一个。

2024-11-11 17:14:57 570

原创 C++ 关于基于范围的for循环(C++11) 语法 详解

对于类而言,应该提供begin和end的方法,begin和end就是for循环迭代的范围。以下代码就有问题,因为for的范围不确定。

2024-11-11 16:27:25 433

原创 C++ 关于auto关键字(C++11) 详解

auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。

2024-11-11 13:37:40 463

原创 C++ 内联函数 详解分析 (含代码分析)

介绍内联函数之前,我们先来回忆一下宏。

2024-11-11 13:14:31 524

原创 C++ 引用 详解

2.一个变量可以有多个引用3.引用一旦引用一个实体,再不能引用其他实体。

2024-11-10 15:51:39 1029

原创 C++之 缺省参数和函数重载 详解

参则采用该形参的缺省值,否则使用指定的实参。缺省参数不能在函数声明和定义中同时出现。在调用该函数时,如果没有指定实。,常用来处理实现功能类似数据类型。缺省值必须是常量或者全局变量。语言不支持(编译器不支持)声明与定义位置同时出现,来给出,不能间隔着给。是函数的一种特殊情况,

2024-11-09 15:59:38 180

原创 数据结构排序之归并排序 详解(含代码)

将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。)是建立在归并操作上的一种有效的排序算法。

2024-11-08 17:27:36 173

原创 数据结构排序之快速排序详解(含代码分析)

1.快速排序整体的综合性能和使用场景都是比较好的。

2024-11-06 16:55:55 449

原创 数据结构排序之直接选择排序--堆排序详解(含代码分析)

堆顶元素与最后一个元素交换,向下调整,最后一个元素不看做堆里的数据,下标减一。

2024-11-06 14:22:56 183

原创 数据结构之排序--选择排序详解

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。元素,则将它与这组元素中的最后一个(第一个)元素交换在剩余的array[i]--array[n-2]直接选择排序思考非常好理解,但是效率不是很好。)集合中,重复上述步骤,直到集合剩余。若它不是这组元素中的最后一个。

2024-11-06 13:39:27 334

原创 数据结构排序之插入排序,希尔排序 详解(含代码分析)

直接插入排序是一种简单的插入排序法,其基本思想是:。实际中我们玩扑克牌时,就用了插入排序的思想在抽取扑克牌时,摸的牌与前面已经排序好的牌相比较,插入到合适的位置//排序实现的接口//插入排序voidInsertSortint*aintn//希尔排序voidShellSortint*aintn。

2024-11-06 13:21:29 343

原创 数据结构之二叉树前序,中序,后序习题分析(递归图)

二叉树不能轻易用断言,因为树一定有空。

2024-11-04 13:34:21 334

原创 数据结构之二叉树--前序,中序,后序详解(含源码)

在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。1.前序遍历亦称先序遍历)—访问根结点的操作发生在遍历其左右子树之前。2.中序遍历访问根结点的操作发生在遍历其左右子树之中(间)。3.后序遍历访问根结点的操作发生在遍历其左右子树之后。由于被访问的结点必是某子树的根,。NLRLNR和LRN分别又称为先根遍历、中根遍历和后根遍历。

2024-11-04 12:21:51 848

原创 数据结构--二叉树之TOP-K问题详解

问题,能想到的最简单直接的方式就是排序,但是:如果数据量非常大,排序就不太可取了。可能 数据都不能一下子全部加载到内存中)个元素依次与堆顶元素比完之后,堆中剩余的。个最大的元素,则建小堆。个最小的元素,则建大堆。强、富豪榜、游戏中前。个最小或者最大的元素。

2024-11-03 18:06:10 201

原创 数据结构之二叉树——堆 详解(含代码实现)

/头文件int size;}Heap;//初始化// 堆的销毁// 堆的插入// 堆的删除// 取堆顶的数据// 堆的数据个数// 堆的判空//向上调整//向下调整//函数实现//初始化assert(hp);*p1 = *p2;*p2 = tmp;assert(hp);// 堆的销毁free(hp);hp = NULL;//向上调整assert(a);// 堆的插入。

2024-11-02 12:28:40 535

原创 数据结构之 二叉树详解一 介绍篇

一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。:以某节点为根的子树中任一节点都称为该节点的子孙。:若一个节点含有子节点,则这个节点称为其子节点的父节点;个结点的完全二叉树,如果按照从上至下从左至右的数组顺序对所有节点从。:一个节点含有的子树的根节点称为该节点的子节点;:一个节点含有的子树的个数称为该节点的度;:具有相同父节点的节点互称为兄弟节点;:从根到该节点所经分支上的所有节点;:树中节点的最大层次;

2024-10-27 13:20:19 812

原创 关于数据结构 队列的实现(含源码)

队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,出队列:进行删除操作的一端称为。队列具有先进先出的规则。进行插入操作的一端称为。

2024-10-25 17:50:33 184

原创 栈的实现(含源码)

【代码】栈的实现(含源码)

2024-10-25 16:48:02 180

原创 双链表的删除查找等操作(含源码)

【代码】双链表的删除查找等操作(含源码)

2024-10-24 16:54:10 99

原创 合并两个有序数组(含源码)两种方法

【代码】合并两个有序数组(含源码)

2024-10-19 12:31:48 137

原创 删除排序数组中的重复项 (含源码)

【代码】删除排序数组中的重复项 (含源码)

2024-10-19 11:36:26 86

原创 原地移除数组中所有的元素val 含源码

要求时间复杂度为O(N),空间复杂度为O(1)在原数组改变,不创建新数组。

2024-10-19 11:00:57 156

原创 数据结构顺序表超详细 (通讯录相关联) 含源码 C语言

【代码】数据结构顺序表超详细 (通讯录相关联) 含源码 C语言。

2024-10-18 19:56:51 289

原创 消失的数字 C语言 (含原码解析,两种方法)

分析:按位异或,相同为0,相异为1,0与任何数字异或等于数字本身则令x与数组中所有数异或再遍历实际应有的所有数字与x异或,相同的数字全部抵消,剩下的数字就是缺少的数字。

2024-10-13 17:13:37 331

原创 关于 文件操作详解 笔记 (含代码解析)

磁盘(硬盘)上的⽂件是⽂件。程序设计中,我们⼀般谈的⽂件有两种:程序⽂件、数据⽂件(从⽂件功能的⻆度来分类 )程序⽂件程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows 环境后缀为.exe)数据⽂件⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。

2024-10-13 00:01:58 362

原创 写一个程序拷贝文件 C语言版(含源码)

在当前目录下放一个文件data.txt,写一个程序,将data.txt文件拷贝一份,生成data_copy.txt文件。

2024-10-12 19:43:46 279

原创 关于内存中浮点数的存储详解(含有例题解析)

浮点数在内存中的存储浮点数在内存中的存储常⻅的浮点数:3.14159、1E10等,浮点数家族包括:floatdouble类型。浮点数表⽰的范围:float.h中定义。

2024-10-12 11:39:45 650

原创 内存中整数的存储加练习题

1. 数据在进行存储时,都是以二进制的补码形式存储的,有符号类型的原码,反码,补码是一样。无符号类型的原码,反码,补码可能不同。具体为:反码为将原码的符号位不变,有效位0/1 交换,补码就是在反码+1。2. 在进行整型提升时候,遵守以下两个规则。

2024-10-11 17:51:26 243

原创 数据在内存中的存储 整数存储 ⼤⼩端字节序

整数在内存中的存储整数在内存中的存储整数的2进制表⽰⽅法有三种,即 原码、反码和补码三种表⽰⽅法均有符号位和数值位两部分,,⽽数值位最⾼位的⼀位是被当做符号位,剩余的都是数值位正整数的原、反、补码都相同。负整数的三种表⽰⽅法各不相同。原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。补码:反码+1就得到补码。对于整形来说:数据存放内存中其实存放的是补码。⼤⼩端字节序和字节序判断什么是⼤⼩端?

2024-10-09 20:25:29 299

原创 关于内存函数 memcpy memmove memset memcmp详解(含代码分析,具详细!)

/内容

2024-10-09 19:26:57 512

原创 strerror 函数 perror 函数 的使用

函数直接将错误信息打 印出来。perror函数打印完参数部分的字符串后,再打印⼀个冒号和⼀个空格,再打印错误信息。strerror函数就可以将错误对应的错误信息字符串的地址返回。输出错误码对应的错误信息结果。

2024-10-09 16:50:30 141

原创 strtok 函数的使用 含有源码

结尾,返回⼀个指向这个标记的指针。(strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容 并且可修改。第⼀个参数指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标。,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标。sep参数指向⼀个字符串,定义了⽤作分隔符的字符集合。strtok函数找到str中的下⼀个标记,并将其⽤。如果字符串中不存在更多的标记,则返回。,strtok函数将保存它在字符串。strtok函数的第。

2024-10-09 16:37:43 318

空空如也

空空如也

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

TA关注的人

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