- 博客(127)
- 收藏
- 关注
原创 [数据结构笔记] 2. 链表 内含所有函数C语言代码,完全无伪代码
线性表链式存储结构的特点是: 用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。
2025-02-26 17:48:25
234
原创 [数据结构笔记]数据结构必要的C语言基础
数据结构必要的C语言基础使用C语言学习数据结构之前有一些必要了解的基础,许多同学在初学数据结构时因为对这些知识不熟,导致了对数据结构的畏惧心理。实际上很大一部分来自C语言的基础
2025-02-25 22:31:41
368
原创 [数据结构笔记] 1. 顺序表 内含所有函数C语言代码,完全无伪代码
用一组连续的内存单元依次存储线性表的各个元素,也就是说,逻辑上相邻的元素,实际的物理存储空间也是连续的。
2025-02-25 22:17:24
415
原创 一题学会Java入门语法(需C\C++基础)
1. for, while, if 用法同 c & c++ 2. **输出:** `System.out.print("");`3. **输出并换行:** `System.out.println();`4. **包声明:** `package homework1;` 1. **作用**:将类归入包`homework1`中,便于管理和组织代码。 2. **与C++的区别**:C++没有包的概念,而是使用命名空间(namespace)来组织代码。5. **导入库:** `import
2025-02-23 16:33:05
402
原创 Java 入门第一课 InteliJ IDEA 的快捷操作
1. 使用idea开发java程序的步骤是什么? - project ->module ->package -> class - projec t中可以创建多个module - module中可以创建多个package - package中可以创建多个class <br>2. 创建都是用哪个关键字 ? `New project/module/package/class`3. idea中的java程序是自动编译和执行的,那编译后的class文件在哪里? - 在工程路径下的 一个`o
2025-02-23 16:24:55
487
原创 [C++刷题]三题学会 前缀和 算法
一、问题本质分析 需求场景:需要快速响应大量区间求和查询暴力法缺陷:传统遍历求和时间复杂度O(n*m),当n和m都达到1e5时运算量达到1e10,必然超时 优化目标:将单次查询复杂度降至O(1),总时间复杂度优化为O(n+m) 二、前缀和核心思想 预处理阶段 构建sum数组:sum[i]表示前i个元素的和 递推关系:sum[i] = sum[i-1] + a[i] 初始化技巧:sum[0] = 0(作为基准值) 查询阶段 区间[l, r]和公式:sum[r] - sum[l-1]
2025-02-20 10:30:00
964
原创 [C++刷题]三道暴力枚举 经典题 详解
解题思路 问题本质:在多个矩形中寻找最后一个覆盖目标点的矩形 暴力策略:逆向遍历矩形列表(后输入的矩形视为上层覆盖) 优化要点:利用输入顺序隐含的覆盖关系,时间复杂度O(n)
2025-02-19 11:22:27
298
原创 [C++刷题]使用sort()对字符串中的字符排序
将单词 “snake” 的字母按字母表顺序重新排列,输出排序后的新字符串。 字符串操作:`string` 类的基本方法 排序算法:标准库 sort 函数(平均时间复杂度 O(n log n)) 空间优化:原地排序避免额外空间开销
2025-02-19 11:09:50
946
原创 [算法学习笔记]1. 枚举与暴力
枚举是基于已有知识来猜测答案的问题求解策略。即在已知可能答案的范围内,通过逐一尝试寻找符合条件的解。暴力算法直接模拟题目要求的操作来求解问题,强调严格遵循题目描述的步骤实现。
2025-02-18 19:07:45
876
原创 [C++提高编程]笔记 1.2.6 模板的局限性
局限性: 模板的通用性并不是万能的 总结: 1. 利用具体化的模板,可以解决自定义类型的通用化 2. 学习模板并不是为了写模板,而是在STL能够运用系统提供的模板
2025-01-15 16:43:04
234
原创 [C++提高编程]笔记 1.2.4 普通函数与函数模板的区别1.2.5普通函数与函数模板的调用规则
普通函数与函数模板区别:1. 普通函数调用时可以发生自动类型转换(隐式类型转换)2. 函数模板调用时,如果利用自动类型推导,不会发生隐式类型转换3. 如果利用显示指定类型的方式,可以发生隐式类型转换调用规则如下:1. 如果函数模板和普通函数都可以实现,优先调用普通函数2. 可以通过空模板参数列表来强制调用函数模板3. 函数模板也可以发生重载4. 如果函数模板可以产生更好的匹配,优先调用函数模板
2025-01-15 16:05:41
310
原创 [C++提高编程]笔记 1.2.2 函数模板注意事项 1.2.3案例
注意事项:自动类型推导,必须推导出一致的数据类型`T`, 才可以使用模板必须要确定出`T`的数据类型,才可以使用`T`
2025-01-14 11:20:14
173
原创 [C++提高编程]笔记 1.1 模板概念1.2函数模板
通用的模具,提高复用性 特点:不可以直接使用,只是一个框架 模板的通用并不是万能的 1.2 函数模板 C++ 两种编程思想: 面向对象的编程 泛型编程 C++提供两种模板机制: 函数模板和类模板 1.2.1 函数模板语法 函数模板的作用: 建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表
2025-01-13 18:17:57
204
原创 [C++提高编程]笔记 2 STL初识
长久以来,软件界一直希望建立一种可重复利用的东西 C++的面向对象和泛型编程思想,目的就是复用性的提升 大多情况下,数据结构和算法都未能有一套标准, 导致被迫从事大量重复工作 为了建立数据结构和算法的一套标准, 诞生了STL
2025-01-13 17:30:53
371
原创 [C++提高编程]异常处理
C++中的异常处理是处理运行时错误的过程。执行异常处理,以便即使在运行时出现错误后也能保持正常的应用程序流转。在C++中,异常是在运行时抛出的事件或对象。所有异常都派生自std::exception类。它是一个可以处理的运行时错误。如果我们不处理异常,它就会打印异常消息并终止程序。
2025-01-12 19:02:40
359
原创 [C++刷题] 统计数字字符个数
因为题中给出的字符串中有空格, 故使用`getline`再`s.length()`求字符串长度本题是统计数字个数, 使用的是ASCII码来判断, 如果要求大小写个数也可以这样使用, 也可以使用库函数`isdigit()`、`isalpha()`, 但要记得包含头文件`ctype`
2025-01-03 14:37:04
330
原创 [C++刷题] 求回文素数
本题难点主要是回文数的判断思路: 将数字倒置存储, 比较和原数字是否相同, 相同即为回文.可以利用中间变量, 每次取到余数(个位), 赋值给一个临时变量`reversed`由于要留着原来的数字做比较, 所以不能改变原变量, 需要使用中间变量`temp`使用`while(temp>0`或`temp!=0`)每次/10(取数字每一位的方法)最后将倒置的数字和原数字比较
2025-01-02 19:49:33
969
原创 [哈工大]战德臣 数据库系统 第13讲 数据库设计过程 笔记
基本内容 数据库设计过程与设计方法 E-R图 / IDEF1X向关系模式的转换 不正确数据库设计引发的问题及其解决 重点与难点 理解数据库设计的四个过程 理解不正确数据库设计引发的问题,为数据库理论的学习奠定问题基础 理解不正确数据库设计引发的问题,提升数据建模与数据库设计能力
2024-11-28 21:42:39
1204
原创 [C++ 核心编程]笔记 4.1 封装
封装是C++面向对象三大特性之一。封装的意义: 将属性和行为作为一个整体,表现生活中的事物 将属性和行为加以权限控制
2024-11-27 19:53:21
532
原创 【C++】malloc 和 new 的区别:C++ 动态内存分配全解析
是 C 语言中用于动态分配内存的函数,但在 C++ 中,通常用。如果你的代码涉及对象的构造或初始化,不能直接用。具有更多的功能,比如调用构造函数和析构函数。,而应该调整代码来使用 C++ 的初始化方式。来释放数组,可能会导致未定义行为。
2024-11-26 20:08:10
947
原创 【EasyX】基本绘图与文字控制, 图像输出 方法
参数错误,找不到对应的函数, 错误 C2665 “outtextxy”: 没有重载函数可以转换所有参数类型 是由于字符集导致的, 解决方案: 在字符串前面加上大写的 L 用TEST()把字符串包起来, _T(), 原理同上 不需要添加任何代码, 进项目->属性->配置属性->高级->字符集.>改为多字节字符集, 推荐使用这个
2024-11-26 19:52:46
327
原创 [C++ 核心编程]笔记 5.2.2 二进制方式 读文件
二进制方式读文件主要利用流对象调用成员函数 read 函数原型: `istream& read(char *buffer,int len);` 参数解释: 字符指针`buffer`指向内存中一段存储空间。`len`是读写的字节数 文件输入流对象 可以通过`read`函数,以二进制方式读数据
2024-11-24 12:00:00
230
原创 [C++ 核心编程]笔记 5.2.1 二进制方式 写文件
以二进制的方式对文件进行读写操作 打开方式要指定为 ios::binary 5.2.1 写文件二进制方式写文件主要利用流对象调用成员函数 `write` 函数原型: `ostream& write(const char * buffer,int len);` 参数解释: 字符指针`buffer`指向内存中一段存储空间。`len`是读写的字节数 总结: 文件输出流对象 可以通过 `write` 函数,以二进制方式写数据
2024-11-24 10:30:00
203
原创 [C++刷题] 基础小知识点(8) 数组在不同存储位置时默认初始化值的不同
存储位置是否默认初始化默认值局部数组否未定义(随机值)全局/静态数组是0(内置类型)动态数组否未定义(随机值)显式初始化是更好的编程习惯,尤其是对于局部或动态数组。
2024-11-23 11:00:00
360
原创 [C++刷题] 基础小知识点(7) 将大数组等 移动到 main 函数外
在我们刷题时, 常常会进行开辟大数组等操作,而初学者一般习惯性将变量声明放在main函数中。而在main()函数中声明的变量如果太大, 如,有时编译器会报错:栈区与全局区的差异:将数组移到全局区,可以减轻栈的负担,避免栈溢出。为什么编译器会报错:将数组从函数内部移动到函数外,全局区管理的内存空间通常更大,因此可以解决栈空间不足的问题。以下情况有效:全局声明的数组大小不超过全局区限制:不需要动态分配的情况下:堆区 是另一种选择,通过动态内存分配解决栈不足问题:堆与全局的对比:如果数组大小较大且需要
2024-11-23 10:00:00
484
原创 [C++ 核心编程]笔记 5.1.1 写文件
程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件ofstreamifstreamfstream。
2024-11-22 10:00:00
169
原创 [C++ 核心编程]笔记 4.7.6 多态案例三-电脑组装
将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商。创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口 测试时组装三台不同的电脑进行工作。电脑主要组成部件为 CPU(用于计算),显卡(用于显示),内存条(用于存储)
2024-11-21 10:30:00
298
原创 [C++ 核心编程]笔记 4.7.5 虚析构和纯虚析构
多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码。解决方式: 将父类中的析构函数改为虚析构或者纯虚析构。如果是纯虚析构,该类属于抽象类,无法实例化对象。
2024-11-21 10:00:00
378
原创 [C++ 核心编程]笔记 4.7.3 纯虚函数和抽象类
在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容,因此可以将虚函数改为纯虚函数纯虚函数语法:当类中有了纯虚函数,这个类也称为抽象类。
2024-11-20 10:30:00
303
原创 [C++ 核心编程]笔记 4.6 继承
继承是面向对象三大特性之一有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码。
2024-11-20 10:00:00
1173
原创 [C++ 核心编程]笔记 4.7.2 多态案例--计算器类
多态的优点: 1. 代码组织结构清晰 2. 可读性强 3. 利于前期和后期的扩展以及维护 在真实的开发中 提倡 开闭原则 开闭原则: 对扩展进行开放, 对修改进行关闭 总结: C++开发提倡利用多态设计程序架构,因为多态优点很多
2024-11-19 11:00:00
235
原创 [C++ 核心编程]笔记 4.7.1 多态的基本概念
多态是C++面向对象三大特性之一 多态分为两类 静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名 动态多态: 派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定-编译阶段确定函数地址 动态多态的函数地址晚绑定-运行阶段确定函数地址 动态多态 1. 有继承关系 2. 子类重写父类的虚函数 动态多态使用: 父类的指针或引用, 执行于类对象
2024-11-19 10:30:00
209
原创 [ORACLE数据库从0到1] 笔记 创建表和用户的流程、表的创建、修改与删除
例如:NUMBER(5) 最大可以存的数为最大可以存的数为99999。NUMBER (5, 2) 最大可以存的数为999.99。给wateruser dba权限。
2024-11-14 10:30:00
722
原创 [C++ 核心编程]笔记 4.5.6 函数调用运算符重载
1. 函数调用运算符()也可以重载 2. 由于重载后使用的方式非常像函数的调用,因此称为仿函数 3. 仿函数没有固定写法,非常灵活
2024-11-14 10:30:00
112
原创 VS 2022 无法打开 xxx exe 进行写入 解决方案
经排查, 一般是上次生成的exe仍在运行, 操作过快导致VS 2022没反应过来无法关闭exe。打开任务管理器, 按名称排序,可以找到自己编写的程序名, 选中-delete。该问题一般出现于运行程序后马上关闭程序后。
2024-11-13 15:29:47
501
2
原创 [ORACLE数据库从0到1] 笔记 ORACLE 简介 以及 服务器的挂载及远程连接
ORACLE 数据库系统是美国ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器 (CLIENT/SERVER) 或 B/S 体系结构的数据库之一。ORACLE 通常应用于大型系统的数据库产品。ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
2024-11-12 20:47:43
1485
原创 [C++刷题] 基础小知识点(5) 数字反转\求数字位数
1. 求数字位数 2. 存储原数字每一位 3. 根据数组存储的数字计算新数字 要求求逆序数, 而且数据范围较大。 思路: 利用数组存储每位上的数字, 最后再每位*10^i,还原新数字 给定一个整数N,请将该数各个位上数字反转得到一个新数。
2024-11-12 10:30:00
837
原创 [C++ 核心编程]笔记 4.5.5 关系运算符重载
关系运算符重载 作用: 重载关系运算符,可以让两个自定义类型对象进行对比操作 原因: 使用C++提供的 == / != 运算符无法对比 class 类型
2024-11-11 12:47:35
190
南京工业大学Python程序设计语言题库及答案
2024-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人