自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 南京大学cpp复习(c10——多态、操作符重载)

本文摘要: 多态允许同一元素在不同上下文中有多种表现形式,提高代码灵活性。实现方式包括函数重载(静态绑定)、泛型和面向对象特性。函数重载通过参数类型区分,遵循严格匹配规则避免歧义。操作符重载使自定义类型支持运算符,需遵循原有语义,部分操作符(如.)不可重载。重点介绍了双目/单目操作符重载的实现方式,以及特殊操作符=和[]的重载要点,包括深拷贝处理、三/五法则、读写控制等。强调操作符重载应保持语义一致性,避免破坏语言基础特性。

2025-12-23 23:30:56 906

原创 南京大学c++课程(c4.DataType2)

本文介绍了C++中数组和指针的相关知识。数组部分讲解了数组作为函数参数时的退化现象,以及数组名的不可修改特性。指针部分详细说明了NULL和nullptr的区别,重点阐述了智能指针的实现原理和使用方法,包括unique_ptr的RAII机制、shared_ptr的引用计数机制,以及weak_ptr解决循环引用问题的应用场景。文章通过代码示例展示了各种指针的实际用法,强调了现代C++中智能指针在资源管理中的重要性。

2025-12-23 17:03:48 913

原创 南京大学计算机组织结构复习(四、五、六讲)

主要介绍了浮点数算法,存储器,Cache

2025-12-12 12:21:09 772

原创 南京大学cpp复习——第二部分(继承)

摘要:C++继承机制实现代码复用和分类,支持单继承方式(public/protected/private)。派生类包含基类内存布局,可通过using调整访问权限但无法放宽private成员权限。构造函数调用顺序为基类→派生类成员→派生类自身,析构顺序相反。类型兼容允许基类引用/指针指向派生类对象,但直接赋值会导致对象切片。虚函数是实现多态的关键,解决静态绑定下无法调用派生类方法的问题。名掩盖问题可通过using引入基类方法解决,前向声明需注意语法规则。继承构造函数简化派生类初始化过程。

2025-11-30 22:46:39 505

原创 cpp机试输入输出复习

printf 和 scanf 是 C 语言中常用的格式化输入输出函数。printf 通过格式说明符(如%d、%f、%s)控制输出格式,支持宽度、精度等修饰符;scanf 则用于读取输入,需要注意传递变量地址、类型匹配(如%lf读取double)以及缓冲区的处理问题(如%c前加空格跳过空白字符)。两者都有丰富的格式控制选项,但使用时需注意类型对应关系和潜在错误。

2025-11-19 23:17:07 598

原创 南京大学cpp复习——面向对象第一部分(构造函数,拷贝构造函数,析构函数,移动构造函数,友元)

本文摘要: 文章探讨了C++中类成员函数的底层实现机制,重点解析了隐含的this指针原理。通过栈类示例展示了成员函数在编译器层面会被转换为带有this指针参数的函数形式。详细介绍了面向对象编程中头文件声明与源文件定义分离的最佳实践,以及类内函数的内联特性。深入讲解了构造函数的多种形式(默认、带参、拷贝)及其特殊语法,对比了值语义与引用语义的差异。最后阐述了析构函数的作用机制,包括资源释放时机和调用场景,并提供了内存管理示例。文章系统地梳理了C++类设计的核心概念与实现细节。

2025-11-16 20:31:12 1069

原创 南京大学计算机组织结构【1,2,3讲复习】

本文摘要: 计算机系统分为组织(硬件实现)与结构(指令集架构)。冯诺依曼结构基于存储程序思想,由五大部件组成。CPU性能关键指标包括时钟频率、CPI和MIPS,通过公式T=I_c×CPI×t计算程序执行时间。数据表示重点包括:整数补码、浮点数IEEE754标准(符号位、阶码、尾数)及转换方法,以及NBCD码。纠错方法涵盖奇偶校验(检错)和海明码(定位纠错),后者通过校验位分组合并生成故障字定位错误位。全文贯穿计算机底层原理与核心计算方法。

2025-11-12 22:36:25 854

原创 用OneMax算法梳理一下遗传算法的代码实现

以OneMax为例,梳理一下遗传算法的代码实现

2025-07-07 20:40:35 218

原创 操作系统第三章【存储管理】

因为只有这样对于每个进程来说,以它的视角来看,它才拥有完整的虚拟内存)。核心思想是针对内存中的每一个物理页框建立一个页表项,索引就表示对应的物理页框号。系统为每个进程建一张页目录表(一级页表),每个表项对于一个页表(二级页表)。但是要注意逻辑页和物理页框的区别,不同逻辑页可以指向相同物理页框。逻辑地址又叫相对地址(它本质上是对于某个基准地址的偏移量)。把磁盘作为主存扩充,只把部分进程或进程的部分内容装入内存。可以发现,只用缺页中断是软件完成的,其他都可以由硬件完成。只装入需要的段,段内只装入需要的页。

2025-04-29 18:15:54 1026

原创 操作系统第二章【处理器管理】

本文摘要:文章系统梳理了操作系统核心概念,分为处理器管理、中断机制、进程管理和多线程技术四大板块。处理器部分详述了寄存器分类(用户可见/控制状态)、指令特权等级及模式切换机制;中断章节阐释了中断类型(硬件/程序/外部)、响应流程及嵌套处理;进程管理解析了三态模型、PCB结构、上下文切换与调度算法;多线程技术对比了KLT(内核调度)与ULT(用户调度)的优劣及混合策略。最后概述了处理器调度的三级层次(高级/中级/低级)及优先数算法设计原则,强调资源利用率与公平性平衡。(150字)关键词:寄存器、中断嵌套

2025-04-26 19:42:41 712

原创 编译原理第八章重点题型

1. 代码生成/目标代码模型/内存分配​​- 目标代码模型​​:选择适合目标机器的指令序列(如寄存器分配策略)。- 内存分配​​:优化变量在内存或寄存器中的存储方式(如减少内存访问次数)。2. 生成更好代码的优化​​​​- 块内优化(In-Block Optimization)​​:在基本块内删除冗余指令或简化计算(如常量传播)。- 窥孔优化(Peephole Optimization)​​:通过滑动窗口检查短指令序列,替换为更高效的指令(如用INC代替ADD 1)

2025-04-26 12:58:20 803

原创 【第三讲】区块链体系结构

简要讲解了区块链架构的基本知识,资料来源于南京大学区块链技术与创新课程

2025-04-08 18:30:00 2105 1

原创 【第二讲】比特币系统

数字货币和电子货币的关键都在于记账,但是电子货币采用中心化记账,而数字货币通过去中心化特性来确保没有人能够操纵数字货币。这份笔记,省去了大量严谨的密码学知识,比如非对称加密的内容。如果在相近时间内有多个打包好的临时区块被打包广播怎么办?验证的内容太过专业化。而比特币就是一种加密数字货币。挖矿的工具:hash算法。

2025-04-07 18:57:35 1434

原创 【第一课】区块链概述

区块链是去中心化的分布式数据库(账本)技术。区块链技术利用块链式数据结构来验证与存储数据利用分布式节点共识算法来生成和更新数据利用密码学的方式保证数据传输和访问的安全利用由自动化脚本组成的智能合约来编程和操作数据区块链的数据结构:区块头是当前区块的唯一标识符,通过对区块头(包含时间戳、Nonce、交易哈希等)进行哈希运算(如SHA-256)生成。Nonce是一个随机数,用于之后的工作量证明(之后会讲到)TX1等等指的是记录的信息。

2025-04-06 21:02:13 478

原创 编译原理第六章重点题型

SDD就是上下文无关语法+属性+rules一个例子我的理解:SDD就是将上下文无关语法中的终结符和非终结符添加属性,并将每条上下文无关语法中的规则赋予真正的含义。SDD还可以用于构建Syntax DAG(Syntax Directed Acyclic Graph,语法有向无环图),也就是去除重复部分的AST。

2025-03-25 19:58:15 620

原创 编译原理第四章重点题型

编译原理题型摘要 本文总结了编译原理第四章重点题型,包括减少左递归的方法(立即左递归和一般左递归处理)、LL(1)文法的构建(含FIRST/FOLLOW集计算和预测分析表制作)以及LR(0)分析法的基本概念。关键点在于LL(1)文法必须满足无冲突、全覆盖条件,预测分析表的构建规则,以及LR(0)分析法通过状态转换识别语法规则的特点。文章提供了公式图解和实例说明,帮助理解这些核心编译技术。

2025-03-17 20:42:55 569

原创 编译原理Chapter1笔记

本文介绍了编译器的基本原理和工作流程。编译器将源代码翻译为目标语言,与解释器(逐行执行)和链接器(合并目标文件)不同。编译器工作分为三个阶段:前端(词法、语法、语义分析生成中间代码)、中端(机器无关优化)和后端(机器相关优化及代码生成)。此外,文章还概述了编程语言范式(命令式/声明式)、类型系统(静态/动态、强/弱类型)、作用域规则以及函数调用机制等编译原理基础知识。这些内容构成了编程语言实现的核心技术框架。

2025-02-18 18:19:38 767

原创 操作系统第一单元笔记

南京大学2025春操作系统课程笔记

2025-02-18 18:18:49 674

原创 【深度学习入门:基于python的理论与实现读书笔记】第五章误差反向传播法

该文章简要介绍了神经网络的误差反向传播法,省去了大量的推理过程,重点讲述了神经网络误差反向传播法的代码实现。

2025-02-16 13:14:56 1570 1

原创 【深度学习入门:基于python的理论与实现】第四章神经网络的学习笔记

这个笔记可以用作复习《深度学习入门:基于python的理论与实现》,笔记内容大概包含了所有重点知识,但并不完善。

2025-02-12 16:12:33 2118 4

原创 【深度学习入门:基于python的理论与实现】第三章神经网络笔记

这个笔记可以用作复习《深度学习入门:基于python的理论与实现》,笔记内容大概包含了所有重点知识,但并不完善。

2025-02-09 14:01:30 1684 2

原创 leetCode热门100题——3.最长连续序列

用java所写

2025-01-25 20:10:09 408

原创 leetCode热门100题——2.字母异位词分组

用java所写。

2025-01-18 14:45:40 517

原创 leetCode热门100题——1.两数之和

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素(但原数组中可能有两个相同的元素,这种情况可以使用)。你可以按任意顺序返回答案。[0,1]因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。[1,2][0,1]你可以想出一个时间复杂度小于O(n2)的算法吗?

2025-01-16 14:51:52 449

空空如也

空空如也

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

TA关注的人

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