- 博客(22)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 C++11 Lambda表达式
实际在底层编译器对于lambda表达式的处理方式,就是按照函数对象的方式处理的,即:如果定义了一个lambda表达式,编译器会自动生成一个类,在该类中重载了operator()。函数对象将rate作为其成员变量,在定义对象时给出初始值即可,lambda表达式通过捕获列表可以直接将该变量捕获到。函数对象,又称为仿函数,即可以想函数一样使用的对象,就是在类中重载了operator()运算符的类对象。
2023-08-23 00:25:56
11
原创 类型转换操作符
普通的类型转换方式只适用于基本数据类型,对复杂的自定义类型不适用。因此,C++中提供了四种类型转换符:static_cast、dynamic_cast、const_cast、reinterpret_cast。
2023-08-22 23:48:35
10
原创 C++11 智能指针
智能指针本质上一个类模板,它可以创建任意的类型的指针对象,当智能指针对象使用完后,对象就会自动调用析构函数去释放该指针所指向的空间。所有的智能指针类模板中都包含一个私有的指针对象,以及构造函数和析构函数。
2023-08-22 22:40:20
10
1
原创 内联函数——inline
inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。首先,C语言是一个效率很高的语言,宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈、代码生成等一系列的操作,因此效率很高,这是它在C中被使用的一个主要原因。
2023-08-19 00:16:39
16
原创 C++11移动语义
以移动而非深拷贝的方式初始化含有指针成员的类对象。移动语义指的就是将其他对象(通常是临时对象)拥有的内存资源“移为已用”。在旧版的拷贝构造函数的实现中,当类中拥有指针类型的成员变量时,拷贝构造函数中需要以深拷贝的方式复制该指针成员。(否则一旦多个对象中的指针成员指向同一块堆空间,这些对象析构时就会对该空间释放多次,这是不允许的)如果临时对象中的指针成员申请了大量的堆空间,那么深拷贝操作势必会影响对象初始化的执行效率。
2023-08-15 13:24:55
18
1
原创 模板——template
函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。
2023-07-30 22:12:28
13
1
原创 虚函数及其实现原理
使用virtual关键字修饰的函数被称为虚函数,虚函数是实现多态的关键之一。同一个行为具有多个不同表现形式或形态的能力。C++的多态性具体体现在运行和编译两个方面:在程序运行时的多态性通过继承和虚函数来体现。在程序编译时多态性体现在函数和运算符的重载上。在同一个类的成员函数的调用中,虚函数与普通成员函数没有区别。在继承关系中,子类可以通过覆盖基类的虚函数,实现多态。虚函数可以被两种常见的关键字修饰:override:检查派生类虚函数是否重写了基类某个虚函数,如果没有重写编译报错。
2023-07-30 21:51:50
44
1
原创 位图的原理及实现
位图适用于大数据的存储,用unsigned int(32位)的每一位映射一个数据,以此可以将数据量缩小为原来的1/32。bitTable为位图的集合。index检索到是哪一个位图(32位二进制数),num锁定位图上的某一位。
2023-07-26 22:39:27
18
1
原创 数据内存地址判断
3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。2、堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。4、文字常量区:常量字符串就是放在这里的。5、程序代码区:存放函数体的二进制代码。
2023-07-26 11:56:53
24
1
原创 Java多线程
Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。常见守护线程,如:后台记录操作日志,监控内存,垃圾回收等。synchronized锁的的内容应该是变化的量。start()方法与main并行——多线程。虚拟机必须确保用户线程执行完毕。虚拟机不必确保守护线程执行完毕。run()方法与main串行。线程分为用户线程和守护线程。
2022-12-30 12:02:03
58
1
原创 Java注解
注解的主要作用有以下四方面:生成文档编译检查编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码。运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例。,用于标明方法重写,用于标明弃用的类或方法,如果使用了被注解的代码则编译器将发出警告,标明忽略警告,如(具体忽略警告类型略)元注解是用于定义注解的注解,包括、、、(JDK1.5)和和(JDK1.8):,用于标明注解使用的范围,用于标明注解被保留的时间,用于标明该注解会生成javadoc文档,用于标明注解会被继承,重复注
2022-12-04 01:36:57
75
1
原创 Java泛型
泛型的意义在于代码复用,简化多种数据类型执行的相同的代码。泛型中的类型在使用时指定,不需要强制类型转换(类型安全,编译器会检查类型)泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法。
2022-11-24 11:20:46
148
原创 SpringBoot开发快速入门
短时间内快速了解SpringBoot框架的构成,并能够实现搭建简单的SpringBoot项目(文内不包含任何前端知识),文内只包含最基础的入门。
2022-11-01 01:06:21
791
原创 IDEA配置JavaFX环境
前提:已配置好IDEA的Java运行环境,能够正常编译使用Java编程(注:若JAVASDK版本过老,需更换新版本。)步骤:1.配置JAVA FX SDK;2.新建JAVAFX项目;3.配置环境并运行。一、配置JAVA FX SDK1.下载解压Java FX SDK:根据你的系统要求,下载并且解压 JavaFX SDK的包到需要的位置(记住这个位置!!)JAVA FX SDK下载地址:添加链接描述别告诉我你看不懂英文或者不知道怎么下载安装。(再放一个侏罗纪的官网:添加链接描述)2.下
2021-07-02 10:02:46
21962
20
原创 C语言中如何实现同一项目中的快速跳转——goto语句与jmp语句的使用
C语言中如何实现同一项目中的快速跳转goto语句与jmp语句goto语句与jmp语句的相同点goto语句与jmp语句的不同点(附使用方法)goto语句只能够实现同一函数下的跳转jmp语句能够实现不同函数间的跳转而事实上,jmp语句还拥有更加强大的功能:能够实现同一项目中不同源文件间的跳转除此之外(问题)有关extern的使用有关longjmp的使用goto语句与jmp语句goto语句与jmp语句的相同点两者都能够实现快速跳转,而事实上,尽管这种快速跳转极可能导致语句逻辑混乱,既不容易理解,也不方便调试
2021-02-05 11:07:05
1710
东北大学软件学院数据结构.zip
2022-06-13
东北大学C++选修课干货整理(单科绩点4.6).zip
2022-05-07
东北大学C++选修课干货整理(单科绩点4.6).zip
2022-05-07
东北大学数据结构课程资料保证干货.ziphttps://www.csdn.net/
2022-05-07
JavaFX颐养社区系统.zip
2021-07-23
为什么C语言中if(x=1)比if((x=1)==1)运行速度更快
2021-03-17
C语言添加背景音乐,为什么会提示报错
2021-01-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人