C++编程等级认证学习计划
C++编程等级认证学习计划
计划目标
在30天内系统学习并掌握C++编程等级认证(一至八级)的知识点,为参加认证考试做好充分准备。
前期准备
学习资料收集
- 准备涵盖C++编程一至八级知识点的专业教材,如《C++ Primer》等。
- 收集相关的在线教程网站、编程论坛资源,以便在学习过程中查阅和交流。
开发环境搭建
- 安装适合C++编程的集成开发环境(IDE),如Visual Studio Code、Dev C++等。
- 确保环境配置正确,能够顺利进行代码编写、编译和调试。
制定学习进度表
- 按照30天的时间周期,将一至八级的知识点进行合理分配,确保每天都有明确的学习任务。
- 预留一定的时间用于复习、总结和实践。
每天学习安排
- 上午:进行理论知识学习,阅读教材、观看教程视频,理解新的知识点。
- 下午:通过编写代码实践上午所学内容,完成练习题,加深对知识点的理解和掌握。
- 晚上:复习当天学习的重点和难点,总结学习心得,整理笔记,与其他学习者交流经验。
学习内容与安排
一级(第1 - 3天)
第一天
- 上午
- 学习计算机的基本构成(CPU、内存、I/O设备等),了解Windows、Linux等操作系统基本概念和常见操作,阅读相关教材章节。
- 了解计算机的历史及在现代社会中的常见应用,通过网络资料拓展知识面。
- 下午
- 熟悉集成开发环境(如Dev C++)的使用,包括创建文件、编辑文件、保存文件、编译、解释、调试等操作,实际动手操作练习。
- 掌握基础的cin语句、scanf语句、cout语句、printf语句,赋值语句等,编写简单的输入输出程序进行实践。
- 晚上
- 复习当天学习的计算机基础知识和开发环境操作,总结重点内容。
- 回顾输入输出语句的使用方法,思考在实际编程中可能遇到的问题及解决方法。
第二天
- 上午
- 深入学习标识符、关键字、常量、变量、表达式的概念,通过实例理解其含义和用法,阅读教材并做笔记。
- 掌握常量与变量的命名、定义、作用、初始化与赋值以及变量的自加与自减运算,编写代码练习变量的使用。
- 下午
- 学习基础算术表达式(加、减、乘、除、整除、求余),逻辑运算与(&&)、或(||)、非(!),关系运算(大于、大于等于、小于、小于等于、等于、不等于),完成相关练习题。
- 掌握基础的数据类型的定义和使用(整型、实数型、字符型、布尔型),编写程序运用不同数据类型进行数据处理。
- 晚上
- 复习当天所学的编程概念和运算知识,总结规律和易错点。
- 整理数据类型相关的代码示例,加深对不同数据类型特点和适用场景的理解。
第三天
- 上午
- 学习顺序结构程序的编写,理解程序的执行流程,阅读示例代码并分析。
- 掌握分支结构程序的编写,学习if语句、if - else语句、switch语句,了解三目运算,通过编写简单的判断程序巩固所学。
- 下午
- 学习循环结构程序的编写,掌握for、while、do - while循环语句的使用以及continue语句和break语句在循环中的应用,完成循环结构的练习题。
- 理解程序的注释和调试的概念,在之前编写的代码中添加注释,练习使用调试工具查找和解决程序中的错误。
- 晚上
- 总结顺序、分支、循环结构的特点和使用场景,对比不同结构的优缺点。
- 复习程序调试的方法和技巧,回顾在调试过程中遇到的问题及解决思路。
二级(第4 - 7天)
第四天
- 上午
- 学习计算机存储的基本概念及分类,了解随机存储器(RAM)、只读存储器(ROM)和高速缓冲存储器(Cache)的功能及区别,阅读相关资料并绘制思维导图。
- 了解计算机网络的概念,学习计算机网络的分类(广域网(WAN)、城域网(MAN)、局域网(LAN)),了解计算机网络的层级结构及作用(TCP/IP四层模型与OSI七层模型),了解不同层级的重要协议,通过网络拓扑图加深理解。
- 下午
- 学习程序设计语言的几大分类及特点(机器语言、汇编语言、高级语言),了解常见的高级语言(C++、Python等),对比不同语言的特性,分析其适用场景。
- 了解流程图的概念及基本表示符号,掌握绘制流程图的方法,能正确使用流程图描述程序设计的三种基本结构,根据简单程序绘制流程图。
- 晚上
- 复习计算机存储和网络知识,总结重点概念和关键知识点。
- 回顾流程图的绘制要点,尝试根据实际问题设计流程图。
第五天
- 上午
- 深入学习ASCII编码原理,能识别常用字符的ASCII码(空格:32、“0”:48、“A”:65、“a”:97),并掌握ASCII码和字符之间相互转换的方法,编写代码实现转换功能。
- 学习数据类型的转换,包括强制类型转换和隐式类型转换,通过实例理解转换规则和可能出现的问题。
- 下午
- 掌握多层分支结构,学习if语句、if…else语句、switch语句及相互嵌套的方法,编写复杂的分支结构程序进行练习。
- 学习常用的数学函数:绝对值函数、平方根函数、最大值函数、最小值函数、随机数函数理解相应的算法原理,运用数学函数解决实际问题。
- 晚上
- 复习ASCII编码和数据类型转换知识,总结转换的注意事项。
- 总结数学函数的使用方法和应用场景,思考如何优化数学函数的使用。
第六天
- 上午
- 学习多层循环结构,掌握for语句、while语句、do…while语句及相互嵌套的方法,分析多层循环的执行流程。
- 进行多层循环结构的编程练习,解决一些与循环嵌套相关的实际问题,如打印图形、计算数列等。
- 下午
- 综合运用分支和循环结构,解决一些复杂的逻辑问题,如猜数字游戏、打印九九乘法表等,进一步提高编程能力。
- 对前几天学习的二级知识点进行总结和梳理,制作知识点总结表格,查漏补缺。
- 晚上
- 复习多层循环结构的难点和易错点,回顾解决复杂逻辑问题的思路和方法。
- 针对当天复习中发现的薄弱环节,进行有针对性的学习和练习。
第七天
- 上午
- 回顾二级知识点中的重点内容,如计算机存储与网络、程序设计语言特点、流程图、ASCII编码、数据类型转换、多层分支/循环结构、数学函数等,强化记忆。
- 阅读优秀的二级水平C++代码示例,分析其代码结构、算法思路和编程技巧,学习他人的经验。
- 下午
- 进行二级知识点的模拟考试或练习题测试,按照考试时间和要求完成题目,检验学习成果。
- 认真分析模拟考试或练习题的答案,找出自己的错误和不足之处,针对性地进行复习和改进。
- 晚上
- 总结模拟考试或练习题中的问题,整理错题集,记录错误原因和正确解法。
- 调整学习心态,保持积极的学习态度,为后续学习做好准备。
三级(第8 - 12天)
第八天
- 上午
- 学习二进制数据编码,了解原码、反码、补码的概念和原理,阅读教材中的相关解释,并通过实例进行计算和理解。
- 掌握数据的进制转换,包括二进制、八进制、十进制、十六进制之间的相互转换方法,编写代码实现进制转换功能。
- 下午
- 学习位运算,掌握与(&)、或(|)、非(~)、异或(^)、左移(<<)、右移(>>)的基本使用方法及原理,通过位运算操作实现一些特定功能,如数据加密、权限判断等。
- 了解算法的概念与描述,学习如何用自然语言、流程图、伪代码方式来描述算法,以简单的排序算法为例进行描述练习。
- 晚上
- 复习二进制数据编码、进制转换和位运算知识,总结转换和运算规律。
- 回顾算法描述方法,尝试用不同方式描述常见算法,如查找算法、计算算法等。
第九天
- 上午
- 深入学习C++一维数组的基本应用,包括数组的定义、初始化、访问和遍历,理解数组在内存中的存储方式,通过编写代码实现数组的基本操作。
- 学习数组的常见算法,如查找、排序(冒泡排序、选择排序等基础排序算法),分析算法的时间复杂度和空间复杂度,优化算法实现。
- 下午
- 继续练习数组相关算法,解决一些实际问题,如数组元素的统计、排序后的数组操作等,提高对数组的运用能力。
- 学习字符串及其函数的使用,包括但不限于大小写转换、字符串搜索、分割、替换等,通过字符串处理练习掌握函数用法。
- 晚上
- 复习数组和字符串知识,总结数组操作和字符串处理的技巧和注意事项。
- 思考数组和字符串在实际编程中的应用场景,以及如何提高处理效率。
第十天
- 上午
- 理解枚举算法的原理及特点,学习如何通过枚举法解决实际问题,如穷举密码、列举组合情况等,分析枚举算法的优缺点。
- 学习模拟算法的原理及特点,掌握如何用模拟法模拟现实场景或过程,如模拟时钟运行、游戏中的角色移动等,编写模拟算法程序。
- 下午
- 综合运用数组、字符串、枚举和模拟算法解决一些复杂的编程问题,提高综合编程能力,如模拟游戏逻辑、数据分析处理等。
- 对前几天学习的三级知识点进行总结和梳理,绘制知识思维导图,梳理知识点之间的联系。
- 晚上
- 复习枚举和模拟算法的应用场景和解题思路,总结经验教训。
- 回顾知识思维导图,强化对三级知识点整体结构的理解。
第十一天
- 上午
- 回顾三级知识点中的重点内容,如数据编码、进制转换、位运算、一维数组、字符串及其函数、枚举算法、模拟算法等,查漏补缺,强化记忆。
- 阅读优秀的三级水平C++代码,分析代码中数据结构和算法的运用,学习代码优化技巧。
- 下午
- 进行三级知识点的模拟考试或练习题测试,按照考试时间和要求完成题目,检验学习效果,分析答题情况。
- 针对模拟考试或练习题中出现的问题,进行深入复习和强化练习,重点攻克薄弱环节。
- 晚上
- 总结模拟考试或练习题中的错误和问题,整理错题集,记录错误原因和改进方法。
- 放松心情,保持良好的学习状态,准备迎接下阶段学习。
第十二天
- 上午
- 复习三级知识点中易错和重点部分,如复杂的位运算、数组与指针的关系、算法的优化等,通过实际代码编写加深理解。
- 学习如何优化代码结构和算法效率,提高程序的性能,如减少不必要的计算、优化循环结构等。
- 下午
- 完成几个综合性的编程项目,将三级所学知识运用到实际项目中,如简单的数据库管理系统(数据存储使用数组模拟)、文本处理工具(运用字符串函数和算法)等,提升项目开发能力。
- 晚上
- 总结项目开发过程中的经验和教训,记录项目中遇到的问题及解决方法。
- 对三级学习内容进行全面总结,为进入四级学习做好准备。
四级(第13 - 17天)
第十三天
- 上午
- 深入学习C++指针类型的概念,理解指针的作用和意义,掌握指针类型变量的定义、赋值、解引用操作,通过代码示例深入理解指针的使用。
- 学习指针与数组、函数的关系,掌握如何通过指针操作数组元素和函数参数传递,编写相关代码进行练习。
- 下午
- 学习C++结构体的定义和使用,包括结构体的声明、初始化、成员访问,理解结构体在组织复杂数据结构中的作用,创建结构体并进行操作练习。
- 学习二维及多维数组的基本概念及使用,掌握数组的初始化、访问和遍历方法,了解数组在内存中的存储布局,编写二维数组相关程序。
- 晚上
- 复习指针和结构体知识,总结指针操作的注意事项和结构体的应用场景。
- 回顾二维及多维数组的特点和使用方法,思考如何优化数组操作。
第十四天
- 上午
- 学习模块化编程思想,理解函数的声明、定义及调用规则,掌握形参与实参的概念及区别,通过编写函数实现特定功能来加深理解。
- 学习变量作用域的概念,理解全局变量与局部变量的区别,分析变量作用域对程序运行的影响,编写代码验证变量作用域规则。
- 下午
- 学习函数参数的传递方式,包括C++值传递、引用传递、指针传递,了解不同传递方式的特点和适用场景,通过实例对比分析。
- 学习Python复合数据类型的嵌套使用(对应C++学习内容,了解不同语言在数据结构处理上的异同),如列表嵌套列表、字典嵌套列表等,进行Python数据结构操作练习。
- 晚上
- 复习函数相关知识,总结函数参数传递的要点和变量作用域的规则。
- 对比C++和Python在数据结构处理上的差异,思考如何在不同场景下选择合适的语言特性。
第十五天
- 上午
- 学习递推算法基本思想、递推关系式的推导方法,通过分析实际问题建立递推模型,如斐波那契数列、阶乘计算等,编写递推算法程序。
- 学习排序算法的概念,了解内排序和外排序的概念及差别,理解排序算法的时间复杂度、空间复杂度、使用场景以及稳定性,对比不同排序算法的特点。
- 下午
- 深入学习排序算法中的冒泡排序、插入排序、选择排序的算法思想、排序步骤及代码实现,对三种排序算法进行性能测试和比较,分析在不同数据规模下的表现。
- 学习简单算法复杂度的估算方法,包括多项式、指数复杂度,通过分析算法代码计算其复杂度,理解复杂度对算法性能的影响。
- 晚上
- 复习递推算法和排序算法知识,总结递推关系式推导的技巧和排序算法的优化思路。
- 回顾算法复杂度估算方法,思考如何通过优化算法降低复杂度。
第十六天
- 上午
- 掌握文件操作中的重定向,学习如何实现文件读写操作,了解文本文件的分类,掌握写操作、读操作、读写操作的方法,编写文件处理程序,如数据存储、读取配置文件等。
- 学习异常处理机制,掌握异常处理的常用方法,如try - catch语句块的使用,了解如何在程序中处理可能出现的错误情况,通过编写代码处理异常情况进行练习。
- 下午
- 综合运用四级所学知识,解决一些综合性的编程问题,如数据排序后写入文件、从文件中读取数据进行处理等,提高综合运用能力。
- 对前几天学习的四级知识点进行总结和梳理,制作知识点总结文档,梳理知识脉络。
- 晚上
- 复习文件操作和异常处理知识,总结文件操作的注意事项和异常处理的最佳实践。
- 回顾总结文档,强化对四级知识点的整体理解。
第十七天
- 上午
- 回顾四级知识点中的重点内容,如指针、结构体、二维及多维数组、函数、递推算法、排序算法、文件操作、异常处理等,查漏补缺,强化记忆。
- 阅读优秀的四级水平C++代码,分析代码中复杂数据结构和算法的运用,学习代码架构和设计模式。
- 下午
- 进行四级知识点的模拟考试或练习题测试,按照考试时间和要求完成题目,检验学习成果,分析答题情况,找出薄弱环节。
- 针对模拟考试或练习题中暴露的问题,进行有针对性的复习和强化练习,重点突破难点。
- 晚上
- 总结模拟考试或练习题中的错误和问题,整理错题集,记录错误原因和改进措施。
- 调整学习状态,为进入五级学习做好准备,保持积极的学习心态。
五级(第18 - 23天)
第十八天
- 上午
- 深入学习初等数论相关知识,包括素数与合数、最大公约数与最小公倍数、同余与模运算、约数与倍数、质因数分解、奇偶性等概念和应用,阅读相关数学教材和资料,理解数论知识的原理。
- 学习C++数组模拟高精度加法、减法、乘法和除法的相关知识,掌握高精度运算的实现方法,通过编写代码实现高精度计算功能。
- 下午
- 继续练习高精度运算,解决一些涉及大数值计算的实际问题,如计算超大整数的四则运算结果,优化高精度运算算法,提高计算效率。
- 学习链表的创建、插入、删除、遍历和反转操作,理解单链表、双链表、循环链表的区别,通过代码实现链表的基本操作,分析不同链表结构的特点和适用场景。
- 晚上
- 复习初等数论知识,总结数论概念和公式,如欧几里得算法求最大公约数的步骤、质因数分解的方法等。
- 回顾链表操作代码,思考链表在实际应用中的优势,如动态内存管理、数据结构构建等。
第十九天
- 上午
- 掌握辗转相除法(也称欧几里得算法)、素数表的埃氏筛法和线性筛法、唯一分解定理的原理和应用,通过代码实现这些算法,分析其时间复杂度和空间复杂度。
- 学习算法复杂度估算方法(含多项式、对数),理解如何分析算法的效率,通过分析已学算法的复杂度加深理解,如分析冒泡排序、二分查找等算法的复杂度。
- 下午
- 运用算法复杂度估算方法评估自己编写的代码复杂度,尝试优化代码以降低复杂度,如改进循环结构、减少不必要的计算等。
- 学习二分查找和二分答案算法(也称二分枚举法)的基本原理,能够在有序数组中快速定位目标值,通过编写代码实现二分查找算法,解决相关练习题。
- 晚上
- 复习辗转相除法等数论算法和复杂度估算方法,总结算法优化思路和复杂度分析技巧。
- 回顾二分查找算法的实现过程,思考二分思想在其他问题中的应用可能性。
第二十天
- 上午
- 深入学习递归算法的基本原理,理解递归函数的调用过程和执行机制,通过分析经典递归问题(如斐波那契数列、汉诺塔问题)掌握递归算法的设计方法。
- 能够应用递归解决问题,编写递归函数实现一些简单的功能,如计算阶乘、生成排列组合等,分析递归算法的时间复杂度和空间复杂度,了解递归的优化策略,如尾递归优化。
- 下午
- 学习贪心算法的基本原理,理解最优子结构,能够通过分析问题找出贪心策略,如活动安排问题、背包问题的简单情形等,编写代码实现贪心算法解决相关问题。
- 对比递归算法和贪心算法的特点和适用场景,思考在实际编程中如何选择合适的算法,通过案例分析加深理解。
- 晚上
- 复习递归和贪心算法知识,总结递归函数的设计要点和贪心策略的寻找方法。
- 反思当天学习过程中遇到的困难和问题,记录解决思路和方法。
第二十一天
- 上午
- 学习分治算法的基本原理,理解分治思想将问题分解为子问题、解决子问题、合并子问题解的过程,通过分析归并排序和快速排序算法深入理解分治算法,掌握其算法步骤和代码实现。
- 运用分治算法解决一些实际问题,如数组中的逆序对问题、大整数乘法等,分析分治算法的时间复杂度和空间复杂度,体会分治算法在降低问题复杂度方面的优势。
- 下午
- 综合运用递归、贪心、分治算法解决一些复杂的编程问题,如解决最优路径规划问题(结合贪心和分治思想)、生成杨辉三角(运用递归和分治)等,提高综合运用算法的能力。
- 对前几天学习的五级知识点进行总结和梳理,制作思维导图,梳理知识点之间的关联和逻辑关系。
- 晚上
- 复习分治算法及相关综合应用,总结不同算法组合解决问题的思路和技巧。
- 回顾思维导图,强化对五级知识点体系的整体认识。
第二十二天
- 上午
- 回顾五级知识点中的重点内容,如初等数论、高精度运算、链表、各种算法(递归、贪心、分治、二分查找等)、算法复杂度估算等,查漏补缺,强化记忆。
- 阅读优秀的五级水平C++代码,分析代码中复杂算法和数据结构的运用,学习代码优化和设计模式的应用,如如何合理组织代码结构以提高可读性和可维护性。
- 下午
- 进行五级知识点的模拟考试或练习题测试,按照考试时间和要求完成题目,检验学习成果,详细分析答题情况,找出自己在知识掌握和解题技巧方面的不足之处。
- 针对模拟考试或练习题中出现的问题,进行深入复习和强化练习,重点攻克薄弱环节,如复杂算法的实现细节、算法应用场景的准确判断等。
- 晚上
- 总结模拟考试或练习题中的错误和问题,整理错题集,详细记录错误原因、正确解法以及相关知识点的拓展,以便日后复习。
- 调整学习心态,保持积极的学习态度,克服考试压力,为最后一天的复习和总结做好准备。
第二十三天
- 上午
- 复习五级知识点中易错和重点部分,如高精度运算的边界处理、复杂算法的时间空间复杂度分析、递归算法的栈溢出问题等,通过实际代码编写和调试加深理解,确保对重点知识的熟练掌握。
- 学习如何优化代码结构和算法效率,提高程序的性能,如采用更高效的数据结构、改进算法策略等,通过实际案例进行优化练习,如优化排序算法以适应大规模数据处理。
- 下午
- 完成几个综合性的编程项目,将五级所学知识运用到实际项目中,如实现一个简单的加密解密系统(运用数论知识和算法)、开发一个数据结构可视化工具(结合链表和其他数据结构)等,提升项目开发能力和综合运用知识的能力。
- 晚上
- 总结项目开发过程中的经验和教训,记录项目中遇到的问题及解决方法,特别是在算法选择和优化方面的经验,形成自己的知识沉淀。
- 对五级学习内容进行全面总结,回顾学习过程中的成长和不足,为进入六级学习制定合理的学习计划和目标,保持学习的连贯性和进步性。
六级(第24 - 27天)
第二十四天
- 上午
- 深入学习树的基本概念,包括树的定义、节点、边、根节点、叶子节点、子树等概念,理解树的层次结构和递归性质,通过绘制树状图加深理解,阅读专业教材中的相关章节,掌握树的基本术语和特性。
- 学习树的构造方法,如通过插入节点构建二叉树,理解二叉树的性质(如二叉树的第i层最多有2^(i - 1)个节点、深度为k的二叉树最多有2^k - 1个节点等),通过代码实现二叉树的构建过程,分析构建算法的时间复杂度和空间复杂度。
- 下午
- 学习树的遍历算法,掌握深度优先搜索算法(DFS)(包括前序遍历、中序遍历、后序遍历)和宽度优先搜索算法(也称广度优先搜索算法,BFS)的算法思想、遍历步骤及代码实现,通过实际操作遍历不同结构的树,理解不同遍历顺序的特点和应用场景,如前序遍历可用于复制树结构、中序遍历可用于二叉搜索树的排序输出、后序遍历可用于计算树的高度等。
- 分析深度优先搜索算法和宽度优先搜索算法的时间复杂度和空间复杂度,对比两种遍历算法在不同场景下的性能差异,如在处理大规模树结构数据时,哪种算法更高效,通过实际案例进行测试和分析。
- 晚上
- 复习树的基本概念和遍历算法,总结树的性质和遍历规则,如深度优先搜索算法的递归实现方式和非递归实现方式(使用栈)的区别,宽度优先搜索算法中使用队列的原理。
- 回顾当天学习过程中遇到的问题和解决方法,记录在学习笔记中,以便日后复习和查阅,思考树结构在实际编程中的应用场景,如文件系统目录结构、组织结构图等。
第二十五天
- 上午
- 学习哈夫曼树、完全二叉树、二叉排序树的相关概念和应用,理解哈夫曼树的构造原理(基于贪心算法)及其在数据压缩中的应用(哈夫曼编码),掌握完全二叉树的特点和存储方式(数组存储),了解二叉排序树的定义和基本操作(插入、删除、查找),通过代码实现哈夫曼树的构建和哈夫曼编码的生成过程,分析其时间复杂度和空间复杂度。
- 深入学习二叉排序树的操作,包括插入节点时如何保持排序性质、删除节点时的不同情况处理(叶子节点、只有一个子节点、有两个子节点),通过编写代码实现二叉排序树的插入、删除和查找操作,理解二叉排序树在数据查找和排序方面的优势(平均时间复杂度为O(log n)),分析其最坏情况下的时间复杂度(退化为链表时为O(n))。
- 下午
- 学习基于树的编码,理解格雷编码的原理和生成方法,掌握哈夫曼编码的编码和解码过程,通过实际数据进行编码和解码操作,理解编码在信息传输和存储中的作用,如如何通过哈夫曼编码减少数据存储空间、提高传输效率,分析编码算法的效率和应用场景。
- 对比哈夫曼编码和格雷编码的特点和适用场景,思考在不同的数据处理需求下如何选择合适的编码方式,如在对错误检测和纠正要求较高的场景下,格雷编码可能更合适,通过案例分析加深理解。
- 晚上
- 复习哈夫曼树、完全二叉树、二叉排序树和基于树的编码知识,总结各种树结构的特点和应用领域,如哈夫曼树在通信领域的应用、二叉排序树在数据库索引中的应用等。
- 回顾编码算法的实现过程,思考如何优化编码过程以提高效率,如在哈夫曼编码中优化节点选择策略以减少计算量,记录优化思路和方法,以便在实际编程中应用。
第二十六天
- 上午
- 掌握简单动态规划的算法思想,理解动态规划的基本原理(通过子问题的最优解构建原问题的最优解),学习动态规划问题的特征(最优子结构、重叠子问题),通过分析经典动态规划问题(如斐波那契数列、最长公共子序列、最大子段和等)掌握动态规划的解题步骤(定义状态、状态转移方程、初始化、计算顺序),通过代码实现简单动态规划问题的求解过程,分析算法的时间复杂度和空间复杂度,思考如何优化动态规划算法的空间复杂度,如使用滚动数组。
- 学习简单背包问题,理解0 - 1背包问题和完全背包问题的区别和联系,掌握背包问题的状态定义和状态转移方程,通过实际案例(如物品选择、资源分配等)进行建模和求解,分析不同背包问题在实际应用中的场景和意义,如在资源有限的情况下如何做出最优选择以实现最大价值。
- 下午
- 深入学习面向对象的思想,理解封装、继承、多态的基本概念,掌握类的创建和基本的使用方法,包括类的定义、成员变量、成员函数、构造函数、析构函数等,通过创建简单的类(如表示几何图形的类、学生信息类等)来实践面向对象编程,理解类的实例化过程和对象之间的交互方式,如通过成员函数访问和修改对象的属性。
- 学习类的继承机制,理解子类如何继承父类的属性和方法,以及如何在子类中扩展和重写父类的方法,通过创建继承关系的类(如动物类和其子类猫类、狗类等)来实践继承概念,分析继承在代码复用和扩展方面的优势,如减少重复代码编写、提高代码的可维护性,同时注意继承带来的一些问题(如菱形继承问题)和解决方法。
- 晚上
- 复习动态规划和面向对象知识,总结动态规划问题的解题模式和面向对象编程的核心概念,如动态规划中状态转移方程的推导方法、面向对象中类之间关系的设计原则等。
- 回顾当天编写的代码,思考如何进一步优化代码结构和算法性能,如在动态规划中如何避免重复计算、在面向对象编程中如何设计合理的类层次结构,记录优化思路和经验教训,以便在后续学习和项目开发中应用。
第二十七天
- 上午
- 学习栈、队列、循环队列的基本定义、应用场景和常见操作,理解栈的后进先出(LIFO)特性和队列的先进先出(FIFO)特性,掌握栈的基本操作(入栈、出栈、栈顶元素访问)和队列的基本操作(入队、出队、队首元素访问),通过代码实现栈和队列的基本操作,分析其时间复杂度,了解循环队列解决队列空间浪费问题的原理(通过循环利用数组空间),实现循环队列的基本操作,如判断队列空满、入队、出队等。
- 对比栈和队列在不同场景下的应用,如栈在函数调用栈、表达式求值中的应用,队列在任务调度、广度优先搜索中的应用,思考如何根据实际问题选择合适的数据结构,通过案例分析加深理解,如在模拟银行排队系统中使用队列来管理客户排队顺序。
- 下午
- 综合运用六级所学知识,解决一些综合性的编程问题,如设计一个简单的表达式计算器(结合树、栈和动态规划)、开发一个文件系统模拟程序(运用树结构和面向对象思想)等,提高综合运用知识的能力和项目开发能力,在项目中注意代码结构的合理性、算法的效率和数据结构的选择。
- 对前几天学习的六级知识点进行总结和梳理,制作知识点总结图表,梳理知识脉络,将树、动态规划、面向对象、栈和队列等知识点联系起来,形成一个完整的知识体系,分析不同知识点之间的相互作用和影响,如面向对象思想如何应用于树结构和数据结构的设计,动态规划如何优化基于树的算法等。
- 晚上
- 复习六级知识点中的重点内容,如树的遍历和应用、动态规划算法、面向对象编程、栈和队列的操作等,查漏补缺,强化记忆,通过回顾代码示例和练习题加深对重点知识的理解。
- 调整学习心态,保持积极的学习态度,为进入七级学习做好准备,总结六级学习过程中的经验和不足,制定下一级学习的初步计划和目标,提前了解七级知识点的难度和重点,为后续学习做好铺垫。
七级(第28 - 30天)
第二十八天
- 上午
- 学习数学库常用函数(三角、对数、指数),包括三角函数(sin(x)、cos(x)等)、对数函数(log10(x)、log2(x)等)、指数函数(exp(x)等)的定义、参数范围和返回值,阅读数学函数库的文档,掌握函数的使用方法,通过编写代码计算数学表达式,如计算三角形的面积(使用三角函数)、解决指数增长或衰减问题(使用指数函数)等,理解数学函数在实际编程中的应用场景,如在科学计算、图形处理、数据分析等领域的作用。
- 深入学习复杂动态规划(二维动态规划、动态规划最值优化),包括区间动态规划、最长上升子序列(LIS)、最长公共子序列(LCS)等内容,理解二维动态规划问题的状态定义和状态转移方程的推导方法,通过分析实际问题(如矩阵路径问题、编辑距离问题等)建立二维动态规划模型,编写代码实现二维动态规划算法,分析算法的时间复杂度和空间复杂度,学习基于滚动数组等降低动态规划空间复杂度的方法,如在计算最长公共子序列时如何使用滚动数组优化空间,通过对比优化前后的代码理解空间复杂度的降低效果。
- 下午
- 继续练习复杂动态规划问题,解决一些具有挑战性的题目,如多阶段决策问题、最优子结构嵌套问题等,提高对复杂动态规划算法的运用能力和问题解决能力,在解题过程中注意分析问题的特点,合理设计状态和状态转移方程,避免陷入局部最优解,思考如何将复杂问题分解为简单的子问题,通过动态规划求解,同时注意优化算法的时间和空间效率,如通过剪枝策略减少不必要的计算。
- 学习图的定义及基本图论算法,包括图的定义(由节点和边组成的集合)、图的种类(有向图、无向图)、图节点的度的概念(入度和出度),掌握编程时图的数据结构表示方法(如邻接矩阵、邻接表),通过代码实现图的基本数据结构构建,理解不同数据结构表示图的优缺点和适用场景,如邻接矩阵适用于稠密图,邻接表适用于稀疏图,分析构建图数据结构的时间复杂度和空间复杂度,为后续图的遍历和算法实现打下基础。
- 晚上
- 复习数学函数和复杂动态规划知识,总结数学函数的使用技巧和复杂动态规划问题的解题思路,如在解决动态规划问题时如何通过分析子问题的重复性来优化算法,记录不同类型动态规划问题的特点和解决方法,形成自己的解题模板,以便在遇到类似问题时能够快速解题。
- 回顾图的定义和数据结构相关知识,思考如何在实际应用中选择合适的图数据结构,如在社交网络分析中可能更适合使用邻接表来表示用户之间的关系,通过实例分析加深理解。
第二十九天
- 上午
- 学习图的遍历算法,包括深度优先搜索(DFS)和广度优先搜索(BFS)在图中的应用,理解图遍历的过程和原理,通过代码实现图的深度优先遍历和广度优先遍历算法,分析算法的时间复杂度和空间复杂度,对比两种遍历算法在不同类型图(如连通图、非连通图)中的表现,思考如何利用遍历算法解决实际问题,如检测图的连通性、寻找图中的路径等。
- 学习图的泛洪(flood fill)算法,理解其原理和应用场景,如在图像处理中用于填充颜色、在地图分析中用于区域划分等,通过编写代码实现图的泛洪算法,分析算法的效率和优化方向,如如何减少不必要的遍历和计算。
- 下午
- 学习哈希表的概念与知识及其应用,理解哈希表的原理(通过哈希函数将键映射到存储位置),掌握哈希表的基本操作(插入、删除、查找),分析哈希表在处理大量数据时的优势(平均时间复杂度接近O(1)),通过代码实现简单的哈希表数据结构,了解哈希冲突的解决方法(如开放地址法、链地址法),分析不同解决方法对哈希表性能的影响,如链地址法在处理冲突时如何保持较好的性能,通过实际案例(如数据缓存、快速查找等)运用哈希表解决问题,体会哈希表在提高数据处理效率方面的作用。
- 综合运用七级所学知识,解决一些综合性的编程问题,如图的最短路径问题(结合图的遍历和动态规划思想)、利用哈希表优化数据存储和查询效率等,提高综合运用知识的能力和解决复杂问题的能力,在项目中注意算法的选择和优化、数据结构的合理运用,以及代码的可读性和可维护性。
- 晚上
- 复习图遍历算法、泛洪算法和哈希表知识,总结图算法的应用场景和哈希表的使用技巧,如图遍历算法在路径搜索和图分析中的应用、哈希表在优化查找性能方面的注意事项,记录在解决综合问题过程中遇到的问题和解决方案,形成经验总结。
- 对七级知识点进行整体回顾和梳理,查漏补缺,强化对重点知识和难点知识的理解,如复杂动态规划问题的分析方法、图算法的优化策略等,通过回顾代码和练习题加深记忆,为最后一天的模拟考试和总结做好准备。
第三十天
- 上午
- 进行七级知识点的模拟考试或练习题测试,按照考试时间和要求完成题目,全面检验对七级知识的掌握程度,包括数学函数、复杂动态规划、图论算法、哈希表等内容,分析答题情况,找出自己在知识理解、算法应用、代码实现等方面存在的问题,如对某些数学函数的参数范围理解不准确、动态规划状态转移方程推导错误、图算法实现不熟练等。
- 下午
- 针对模拟考试或练习题中出现的问题,进行有针对性的复习和强化练习,重点攻克薄弱环节,如重新学习易错的数学函数知识、深入理解复杂动态规划问题的解题思路、熟练掌握图算法的实现细节等,通过查阅资料、请教他人等方式解决疑难问题,确保对每个知识点都能熟练掌握,提高解题能力和编程水平。
- 晚上
- 总结模拟考试或练习题中的错误和问题,整理错题集,详细记录错误原因、正确解法以及相关知识点的拓展,以便日后复习和回顾,避免再次犯错。
- 对七级学习内容进行全面总结,回顾学习过程中的收获和成长,总结学习方法和经验教训,如如何更好地理解复杂概念、如何提高算法设计能力等,为后续学习和编程实践提供参考,同时制定下一步学习计划,如是否继续深入学习C++高级特性、参加相关编程竞赛或项目实践等,保持学习的连续性和进步性。
相关文章:
C++编程等级认证学习计划
C编程等级认证学习计划 计划目标 在30天内系统学习并掌握C编程等级认证(一至八级)的知识点,为参加认证考试做好充分准备。 前期准备 学习资料收集 准备涵盖C编程一至八级知识点的专业教材,如《C Primer》等。收集相关的在线教…...
c和c++中为什么要防止头文件被重复包含!
在编程中,头文件就像一本工具书,它包含了函数、类、宏、全局变量等的定义和声明,供其他代码文件引用。想象一下,如果你在写一篇文章时,反复引用同一本工具书的内容,会发生什么情况呢? 1. 避免重…...
安的厦小程序开发日志
目录 背景名字由来架构文件目录app.jsonapp.wxsspackage.jsonproject.config.jsindex.wxmlindex.wxssindex.jsindex.jsondetail.wxmldetail.wxssdetail.jsdetail.json参考资料背景 我们正在经历一场价值观的变迁,过去的丈母娘和女朋友总是要求男方要买房,那是因为房子是当下…...
深度评测uni-app x:开启跨平台开发新篇章
文章目录 一、引言1.1 跨平台开发的崛起1.2 uni-app x 初印象 二、uni-app x 核心特性评测2.1 uts 语言:跨平台编程新利器2.2 uvue 渲染引擎:原生渲染新体验2.3 强大的组件和 API 支持2.4 插件生态:拓展无限可能 三、与 uni-app 对比…...
第06章 重定向与管道
一、概述 在企业生产环境中,如何记录一个程序运行的过程记录或者定时任务执行的结果呢?假设定时任务凌晨执行,我们在白天上班时需要查看执行是否成功要怎么办?就可以使用本章介绍的重定向和管道符号。 二、重定向 2.1 文件描述…...
python中的字典类型数据及其操作
1、字典的定义 映射是一种键(索引)和值(数据)的对应键值对:键是数据索引的扩展字典是键值对的集合,键值对之间无序字典采用大括号{}和dict()创建,键值对用冒号:表示,key…...
『SQLite』表达式操作
摘要:表达式是一个或多个值、运算符和计算值的 SQL 函数的组合。SQL 表达式与公式类似,都写在查询语言中。 基本语法 SELECT column1, column2, columnN FROM table_name WHERE [CONTION | EXPRESSION];布尔表达式 SQLite 的布尔表达式在匹配单个值的…...
PHP7和PHP8的最佳实践
php 7 和 php 8 的最佳实践包括:使用类型提示以避免运行时错误;利用命名空间组织代码并避免命名冲突;采用命名参数、联合类型等新特性增强可读性;用错误处理优雅地处理异常;关注性能优化,如避免全局变量和选…...
Python实现一个简单的 HTTP echo 服务器
一个用来做测试的简单的 HTTP echo 服务器。 from http.server import HTTPServer, BaseHTTPRequestHandler import jsonclass EchoHandler(BaseHTTPRequestHandler):def do_GET(self):# 构造响应数据response_data {path: self.path,method: GET,headers: dict(self.headers…...
字玩FontPlayer开发笔记4 性能优化 首屏加载时间优化
字玩FontPlayer开发笔记4 性能优化 首屏加载时间优化 字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 ElementUI开发,源代码: github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer …...
NeurIPS 2024 | SHMT:通过潜在扩散模型进行自监督分层化妆转移(阿里,武汉理工)
当前的妆容转移技术面临两个主要挑战: 缺乏成对数据,导致模型训练依赖于低质量的伪配对数据,从而影响妆容的真实感; 不同妆容风格对面部的影响各异,现有方法难以有效处理这种多样性。 今天给大家介绍的方法是由阿里联…...
“知识图谱AI教学辅助系统:点亮智慧学习的新灯塔
嘿,各位教育界的小伙伴们!今天咱们来聊聊一个超级有料的话题——知识图谱AI教学辅助系统。想象一下,如果有一个智能导师能根据你的需求定制专属的学习路径,还能像百科全书一样随时解答疑问,是不是感觉学习变得更高效、…...
STM32-ADC模数转换
定义: ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC【表示转化的范围是0-2^12 - 1】,1us转换时间 输…...
Springboot整合MyBatis-Plus
1、整合MyBatis-Plus 1、导入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency>2、配置 1)配置数据源,导…...
分类、聚类与回归的评价指标
在cross_validate或cross_val_score中,参数scoring,与分类、聚类和回归算法的评价指标有关。 3.4.3. The scoring parameter: defining model evaluation rules For the most common use cases, you can designate a scorer object with the scoring pa…...
Day28下 - 大模型微调:酒店评论情感分析
一、前置准备 1. 下载 LLaMA Factory https://github.com/hiyouga/LLaMA-Factory.git 搭建过程详见:https://blog.csdn.net/CSBLOG/article/details/144584581 2. 选择 预训练模型 和 prompt指令模型 预训练阶段在实际工作中,一般是用不上的ÿ…...
企业级Nosql数据库和Redis集群
一、关系数据库和Nosql数据库 关系数据库 定义:关系数据库是建立在关系模型基础上的数据库。它使用表格(关系)来存储数据,通过行和列的形式组织信息。例如,一个简单的学生信息表可能有 “学号”“姓名”“年龄”“班级…...
代码优化方案
① 引入清晰的中间变量 即如果判断条件很复杂的情况下,最好的方式是引入清晰的中间变量。 isValid val > someConstant; isAllowed condition2 || condition3; isSecure condition4 && !condition5;// 有了描述性变量,我们就不需要再记住…...
C++直接内存管理new和delete
0、前言 C语言定义了两个运算符来分配和释放动态内存。运算符new分配内存,delete释放new分配的内存。 1、new动态内存的分配 1.1、new动态分配和初始化对象 1)、new内存分配 在自由的空间分配的内存是无名的,new无法为其分配的对象…...
CPU过剩是什么意思? 有什么对电脑的影响吗?如何确认CPU有没有过剩
CPU 过剩通常是指计算机系统中 CPU 的性能远远超出了当前运行任务的需求。以下从产生原因和对电脑的影响为你详细介绍: 产生原因 硬件升级与软件发展不同步:用户为追求高性能提前升级了 CPU,而当前的软件应用程序在算法和功能上没有太大突破&…...
Git的简单介绍与如何安装Git
文章目录 前言一、初始git1.git是什么2.为什么要使用git(出现的问题)3.git是如何解决问题的 二、git的安装与卸载1.centos系统2.ubuntu系统3.windows 三、搭建git本地环境1.创建git本地仓库2.配置用户信息 总结 前言 本文简单引入git的相关内容。 一、初始git 1.git是什么 g…...
Linux vi/vim 编辑器:功能强大的文本处理工具
Linux vi/vim 编辑器:功能强大的文本处理工具 引言 Linux 系统中的 vi/vim 是一种功能强大的文本编辑器,它广泛应用于程序员、系统管理员和其他需要处理文本文件的用户群体中。vi 是 visual interface 的缩写,而 vim 则是 vi improved 的缩…...
计算机毕业设计Python电商品推荐系统 商品比价系统 电商比价系统 商品可视化 商品爬虫 机器学习 深度学习 京东爬虫 国美爬虫 淘宝爬虫 大数据
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
正则表达式 - 使用总结
正则表达式 - 使用总结 正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许我们通过特定的模式(pattern)来搜索、匹配和操作字符串。在编程、数据分析和文本处理等领域,正则表达式发挥着非常重要的作用。本文将总结正则表达式的基本概念、使用方…...
性能测试04|JMeter:连接数据库、逻辑控制器、定时器
目录 一、连接数据库 1、使用场景 2、直连数据库的关键配置 3、案例 编辑 二、逻辑控制器 1、if控制器 2、循环控制器 3、ForEach控制器 三、定时器 1、同步定时器 2、常数吞吐量定时器(用的少,了解即可) 3、固定定时器 一、连…...
力扣刷题:二叉树OJ篇(上)
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 1.单值二叉树(1)题目描…...
【跨域】解决SpringBoot和openresty跨域问题
平时后端只需要写一个配置类就可以解决跨域但是最近的新项目死活不行 先说结论 项目中的权限校验(也可以是其他的)拦截器优先级高于跨域拦截器导致跨域处理失效 解决办法 1.在addCorsMappings上增加 Order(value -100)// 跨域优先级最高 2.nginx放行OPTIONS请求 SpringBo…...
下载ffmpeg执行文件
打开网址:Download FFmpeg 按下面步骤操作 解压文件就可以看到ffmpeg的执行文件了,需要通过命令行进行使用: ffmpeg命令行使用参考: ffmpeg 常用命令-CSDN博客...
SQLite 实际案例研究与创新应用
SQLite 作为一种强大而简单的数据库实现,应用于各类场景,从移动应用到物联网设备,再到边缘计算。在本章中,我们将通过几个典型案例,探讨 SQLite 如何在实际中解决复杂问题,并研究其创新应用的可能性。 案例…...
C语言 递归编程练习
1.将参数字符串中的字符反向排列,不是逆序打印。 要求:不能使用C函数库中的字符串操作函数。 比如: char arr[] "abcdef"; 逆序之后数组的内容变成:fedcba 1.非函数实现(循环) 2.用递归方法…...
【HDU】1089 A+B for Input-Output Practice (I)
1089 AB for Input-Output Practice (I):以EOF结尾的输入 Problem Description Your task is to Calculate a b. Too easy?! Of course! I specially designed the problem for acm beginners. You must have found that some problems have the same titles with this one,…...
[python3]Excel解析库-xlwings
xlwings 是一个强大的 Python 库,它允许你直接与 Microsoft Excel 进行交互。通过 xlwings,你可以轻松地在 Python 脚本或 Jupyter Notebook 中读取、写入和操作 Excel 文件,而无需手动打开 Excel 应用程序。此外,xlwings 还支持将…...
[python3]Excel解析库-xlutils
xlutils 是一组用于处理 Excel 文件的 Python 库,它实际上是 xlrd 和 xlwt 的扩展,提供了额外的功能来操作 Excel 文件。xlutils 主要由三个部分组成:xlutils.copy、xlutils.filter 和 xlutils.view,它们分别用于复制和修改现有 E…...
React中的合成事件
合成事件与原生事件 区别: 1. 命名不一样,原生用纯小写方式,react用小驼峰的方式 原生:onclick React的:onClick 2. 事件处理函数的写法不一样 原生的是传入一个字符串,react写法传入一个回调函数 3.…...
记录一次电脑被入侵用来挖矿的过程(Trojan、Miner、Hack、turminoob)
文章目录 0、总结1、背景2、端倪3、有个微软的系统更新,就想着更新看看(能否冲掉问题)4、更新没成功,自动重启电脑5、风险文件(好家伙命名还挺规范,一看名字就知道出问题了)6、开机有一些注册表…...
牛客网刷题 ——C语言初阶(5操作符)——BC107 矩阵转置
1.题目描述:BC107 矩阵转置 牛客网OJ链接 KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。 输入描述: 第一行包含两个整数n和m,表示一个矩阵包含n行m列…...
【调试记录】在CARLA中插入可以播放视频的组件
〇、问题描述 做实验验证的时候,需要在CARLA仿真环境中添加一个可以播放视频的功能,查了很多现有的实验,基本都是插入图像,而对于插入视频,实现的方法就很麻烦了。一开始考虑的是直接用射影变换进行叠加,计…...
【Linux】RPMSG通讯协议介绍
RPMSG协议通讯协议介绍 RPMSG,全称Remote processor Messaging。是一种核间通讯协议。在Linux Kernel中,已经内置了RPMSG。 Linux RPMSG基于共享内存,利用RPMSG可以高效的实现核间通信。比如Linux与FreeRTOS、Linux与Android,都可…...
Branch-Solve-Merge Improves Large Language Model Evaluation and Generation
题目 分支-求解-合并改进了大型语言模型的评估和生成 摘要 大型语言模型(LLM)经常用于多方面的语言生成和评估任务,这些任务涉及满足复杂的用户约束或考虑多个方面和标准。然而,由于模型缺乏一致性,无法计划和分解问题,他们的表现…...
SqlSugar-文章目录
SqlSugar学习总结1(基础操作) SqlSugar学习总结2(主从复制-数据库配置) SqlSugar学习总结3(主从复制-读写分离) SqlSugar学习总结4(树形递归查询) SqlSugar学习总结5(映射)...
如何理解RDD,以及RDD的五大特性和五大特点。
RDD:英文全称Resilient Distributed Dataset,叫做弹性分布式数据集,代表一个不可变、可分区、里面的元素可并行计算的分布式的抽象的数据集合。 Resilient弹性:RDD的数据可以存储在内存或者磁盘当中,RDD的数据可以分区…...
umd格式
umd格式是啥? umd格式是一种通用模块,他同时支持AMD、CJS、ESM模块和全局变量的方式 umd格式打包后的基本代码结构如下: (function (root, factory) {if (typeof define function && define.amd) {// AMDdefine([dependency], factory);} el…...
node.js之---内置模块
在 Node.js 中,模块系统是基于 CommonJS 模块规范 的,这使得开发者可以将代码分成多个独立的模块进行管理。Node.js 提供了很多 内置模块(也称为 核心模块),这些模块可以直接在代码中使用,而无需安装额外的…...
linux下安装达梦数据库v8详解
目录 操作系统、数据库 1、下载达梦数据库 2、安装前准备 2.1、建立数据库用户和组 2.2、修改文件打开最大数 2.3、挂载镜像 2.4、新建安装目录 3、数据库安装 4、配置环境变量 5、初始化数据库实例 6、注册服务 7、使用数据库 8、卸载数据库 9、多实例管理 10、…...
深入理解 Android 中的 ApplicationInfo
深入理解 Android 中的 ApplicationInfo 在 Android 开发中,ApplicationInfo 是一个非常重要的类,它包含了关于应用程序的元信息。这些信息通常是从 AndroidManifest.xml 文件中提取的,开发者可以通过 ApplicationInfo 类来获取和操作这些信…...
【vLLM】使用PagedAttention 进行大型语言模型的高效内存管理
重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…...
STLG_01_12_程序设计C语言 - 联合体和枚举类型
在C语言中,联合体(Union)和枚举类型(Enum)是两种不同的数据结构,它们各自有特定的用途和特点。 联合体(Union) 联合体是一种数据结构,允许在相同的内存位置存储不同的数…...
ThreadLocal详解:深入探讨导致JVM内存泄露的原因及预防措施
引言 ThreadLocal 是Java提供的一个线程局部变量工具,它使得每个线程都可以拥有自己的变量副本,而这些副本对于其他线程而言是不可见的。这在多线程编程中非常有用,因为它可以避免共享资源带来的同步问题。然而,如果使用不当&…...
【FlutterDart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)
上效果 预期的是通过拖动一条边界线改变窗口大小,类似vscode里拖动效果。这个是简单的拖动实现 上代码: import package:flutter/material.dart;class MyDraggableViewDemo extends StatelessWidget {const MyDraggableViewDemo({super.key});override…...
【FlutterDart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100)
【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100) 【Flutter&Dart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小(11 /100) 上效果 对比一下vscode的效果&…...