知识

星火开发设计10 天前
java·开发语言·jvm·c++·知识
序列式容器:deque 双端队列的适用场景在C++ STL的序列式容器中,deque(双端队列)总是容易被忽略——它不像vector那样“万能通用”,也不像list那样“特色鲜明”,却凭借“双端高效操作+随机访问”的混合特性,成为很多场景下的“最优解”。
星火开发设计11 天前
java·开发语言·前端·c++·知识
STL 容器:vector 动态数组的全面解析在C++ STL的序列式容器中,vector无疑是最常用、最灵活、最贴合日常开发需求的容器之一。无论是笔试面试中的算法题,还是实际项目中的数据存储,vector都能凭借其“动态扩容”“随机访问”的核心优势,成为开发者的首选。
星火开发设计12 天前
java·开发语言·jvm·c++·学习·知识·对象
C++ 异常处理:try-catch-throw 的基本用法大家好~ 今天我们来聊聊 C++ 里最基础也最常用的异常处理机制——try-catch-throw。不管是日常写小demo,还是开发中处理边界情况,异常处理都能帮我们避免程序“崩溃闪退”,让错误处理更优雅、代码更健壮。
星火开发设计13 天前
java·开发语言·前端·c++·知识
模板特化:为特定类型定制模板实现在C++模板编程中,泛型是核心优势——一份模板代码,能适配多种数据类型,极大减少重复编码。但实际开发中总会遇到“特殊情况”:当模板作用于某几种特定类型时,通用实现无法满足需求(比如性能不足、逻辑不匹配),这时候就需要「模板特化」登场。
星火开发设计14 天前
java·开发语言·数据结构·c++·html·知识
类模板:实现通用数据结构的基础在上一篇博客中,我们详细讲解了函数模板的定义、调用方式与实战场景,核心解决了“功能相同、类型不同”的函数复用问题,掌握了C++泛型编程的入门技巧。但在实际开发中,除了通用函数,我们更常遇到“数据结构逻辑相同,但存储的数据类型不同”的场景——比如栈、队列、链表、数组,既需要存储int类型数据,也需要存储double、string,甚至自定义结构体类型数据。
星火开发设计15 天前
java·开发语言·前端·c++·学习·算法·知识
虚析构函数:解决子类对象的内存泄漏在前面两篇博客中,我们先后讲解了虚函数与动态多态、纯虚函数与抽象类,核心围绕“动态绑定”和“接口规范”展开——用父类指针/引用指向子类对象,实现“一个接口,多种实现”,这也是C++面向对象编程的核心用法。但很多初学者在使用这一特性时,会忽略一个隐藏的“致命问题”:子类对象的内存泄漏。
星火开发设计16 天前
java·开发语言·c++·学习·算法·指针·知识
多态性:虚函数与动态多态的实现原理在C++面向对象编程中,**多态性(Polymorphism)是三大核心特性(封装、继承、多态)的终极体现——它允许不同类型的对象,对同一个接口(方法名)做出不同的响应,实现“一个接口,多种实现”。而这一切的核心,都依赖于虚函数(Virtual Function)**的机制,虚函数是动态多态的基石,决定了程序运行时如何“动态绑定”到具体的方法实现。
星火开发设计19 天前
开发语言·数据结构·c++·学习·指针·知识
this 指针:指向对象自身的隐含指针在C++面向对象编程中,我们已经学习了类的基本结构、构造函数、析构函数、静态成员变量与静态成员函数。上一篇博客中我们重点强调:静态成员函数的核心特性是“没有this指针”,因此它不依赖对象、无法访问非静态成员。
星火开发设计24 天前
开发语言·c++·学习·算法·函数·知识
格式化输入输出:控制输出精度与对齐方式在前文《C++ 输入输出流:cin 与 cout 的基础用法》中,我们掌握了cin接收输入、cout输出内容的核心逻辑——用cin获取用户输入的数据,用cout将结果打印到屏幕,满足了简单的交互与输出需求。但在实际开发中,基础用法往往不够用:比如输出小数时,需要保留2位小数(如金额、分数);输出多个数据时,需要整齐对齐(如表格形式);输入数据时,需要指定格式(如按固定宽度读取)。
星火开发设计25 天前
java·开发语言·c++·学习·算法·编程·知识
C++ 输入输出流:cin 与 cout 的基础用法在C++编程中,输入输出(I/O)是最基础、最常用的功能之一——无论是接收用户输入的信息,还是向屏幕输出程序运行结果,都离不开输入输出流。前文我们学习了命名空间(namespace)和using关键字,其中cout作为标准输出流的核心工具,我们已多次用到(如cout << "Hello World" << endl;),而与之对应的cin,则是标准输入流的核心工具,用于接收用户从键盘输入的数据。
星火开发设计25 天前
开发语言·c++·学习·算法·编程·知识
using 关键字:命名空间的使用与注意事项在前文讲解命名空间(namespace)时,我们多次用到了using关键字——using namespace std;、using MySpace::print;,它就像命名空间的“快捷方式”,能帮我们简化命名空间中标识符的调用,摆脱繁琐的::作用域解析符。但很多C++初学者在使用using时,很容易陷入误区:要么过度依赖using namespace std;引发命名冲突,要么误用using的语法导致编译报错,甚至不清楚using除了适配命名空间,还有其他用途。
星火开发设计1 个月前
c语言·开发语言·c++·学习·算法·知识
命名空间 namespace:解决命名冲突的利器在C++开发中,随着代码量的增加、模块的增多,一个棘手的问题总会如期出现——命名冲突。比如,你定义了一个名为print的函数,而标准库中也有类似的打印相关函数;再比如,多个开发人员协作时,不小心定义了同名的变量、函数或类,最终导致编译报错,无法正常运行。
星火开发设计1 个月前
开发语言·c++·学习·算法·函数·知识
类型别名 typedef:让复杂类型更简洁在C++编程中,我们常会遇到一些“冗长、复杂”的类型——比如指向函数的指针、嵌套的结构体、模板类型,或是长度较长的标准库类型(如std::vector<std::pair<int, std::string>>)。每次使用这些复杂类型都重复书写完整名称,不仅会增加代码冗余,还会降低代码的可读性和可维护性,甚至容易因书写失误引发编译错误。
星火开发设计1 个月前
java·开发语言·c++·学习·算法·知识
C++ 预处理指令:#include、#define 与条件编译在C++程序的编译过程中,有一个容易被忽略但至关重要的环节——预处理阶段。它发生在编译器对源代码进行正式编译之前,由预处理程序(预处理器)对源代码中的“预处理指令”进行解析和替换,生成经过“净化”和“补充”的中间代码,再交给编译器进行编译。
星火开发设计1 个月前
开发语言·c++·学习·算法·函数·知识
函数占位参数:语法规则与实际应用场景在C++函数编程中,我们除了常用的普通参数、默认参数,还有一种特殊的参数形式——函数占位参数(Placeholder Parameters)。它的语法非常独特:只声明参数类型,不指定参数名,看似“无用”,实则在函数重载、版本兼容、抽象接口设计等场景中发挥着不可替代的作用。
星火开发设计1 个月前
linux·开发语言·c++·学习·算法·知识
枚举类 enum class:强类型枚举的优势在C++编程中,枚举类型是用于表示离散常量集合的基础工具,传统枚举(enum)虽能简化常量定义,但存在类型模糊、作用域污染、隐式转换等缺陷,在复杂项目中易引发难以排查的错误。C++11引入的枚举类(enum class),通过“强类型”和“限定作用域”两大核心特性,彻底解决了传统枚举的痛点,同时保留了枚举的简洁性。前文我们学习了共用体(union)的内存优化特性,枚举类常与共用体、结构体搭配使用(如作为标志位管理共用体成员类型),是提升代码安全性与可读性的重要工具。本文将从传统枚举的缺陷入手,深入解析枚举
0和1的舞者1 个月前
java·后端·学习·开发·知识
技术优化手册:从工具类到 MyBatis 配置与业务逻辑1. 三个工具类的定位与联动逻辑联动逻辑(用户注册 / 登录核心流程):理解自动生成的 Mapper XML 中关键配置的关联关系、定义位置及复用方式,避免重复开发。
星火开发设计1 个月前
开发语言·c++·算法·内存·delete·知识·new
动态内存分配:new 与 delete 的基本用法在 C++ 编程中,内存管理是核心能力之一,而动态内存分配则是实现灵活内存使用的关键。前文我们学习了指针、const 指针、引用等知识点,了解到指针可通过地址操作内存,但这些操作多基于栈上的静态内存(如普通变量、数组)。静态内存的大小和生命周期由编译器自动管理,无法满足运行时动态调整内存的需求(如不确定数组长度、按需创建对象)。此时,就需要通过 new 和 delete 运算符手动管理堆内存,实现动态内存分配与释放。本文将从动态内存的核心意义入手,详细讲解 new/delete 的基本语法、单变量/数组的
王老师青少年编程1 个月前
c++·知识·csp·高频考点·信奥赛·csp-s·提高组
信奥赛C++提高组csp-s知识详解及案例实践(汇总版)信奥赛C++提高组csp-s之并查集 https://noicsp.blog.csdn.net/article/details/156587813?spm=1011.2415.3001.5331
星火开发设计1 个月前
开发语言·c++·学习·算法·指针·const·知识
const 指针与指针 const:分清常量指针与指针常量在C++指针编程中,const与指针的组合是高频易错点,尤其是“常量指针”(const 指针)与“指针常量”(指针 const),二者语法格式仅差const位置,含义与用法却天差地别。前文我们已掌握指针、二级指针及引用的核心逻辑,本文将聚焦这两种特殊指针,从语法规则、本质差异、内存特性、实战场景四个维度逐一拆解,帮你精准区分二者边界,规避编程中的常见错误,彻底吃透const与指针的组合用法。