技术栈
知识
星火开发设计
3 天前
开发语言
·
c++
·
学习
·
算法
·
函数
·
知识
格式化输入输出:控制输出精度与对齐方式
在前文《C++ 输入输出流:cin 与 cout 的基础用法》中,我们掌握了cin接收输入、cout输出内容的核心逻辑——用cin获取用户输入的数据,用cout将结果打印到屏幕,满足了简单的交互与输出需求。但在实际开发中,基础用法往往不够用:比如输出小数时,需要保留2位小数(如金额、分数);输出多个数据时,需要整齐对齐(如表格形式);输入数据时,需要指定格式(如按固定宽度读取)。
星火开发设计
4 天前
java
·
开发语言
·
c++
·
学习
·
算法
·
编程
·
知识
C++ 输入输出流:cin 与 cout 的基础用法
在C++编程中,输入输出(I/O)是最基础、最常用的功能之一——无论是接收用户输入的信息,还是向屏幕输出程序运行结果,都离不开输入输出流。前文我们学习了命名空间(namespace)和using关键字,其中cout作为标准输出流的核心工具,我们已多次用到(如cout << "Hello World" << endl;),而与之对应的cin,则是标准输入流的核心工具,用于接收用户从键盘输入的数据。
星火开发设计
5 天前
开发语言
·
c++
·
学习
·
算法
·
编程
·
知识
using 关键字:命名空间的使用与注意事项
在前文讲解命名空间(namespace)时,我们多次用到了using关键字——using namespace std;、using MySpace::print;,它就像命名空间的“快捷方式”,能帮我们简化命名空间中标识符的调用,摆脱繁琐的::作用域解析符。但很多C++初学者在使用using时,很容易陷入误区:要么过度依赖using namespace std;引发命名冲突,要么误用using的语法导致编译报错,甚至不清楚using除了适配命名空间,还有其他用途。
星火开发设计
6 天前
c语言
·
开发语言
·
c++
·
学习
·
算法
·
知识
命名空间 namespace:解决命名冲突的利器
在C++开发中,随着代码量的增加、模块的增多,一个棘手的问题总会如期出现——命名冲突。比如,你定义了一个名为print的函数,而标准库中也有类似的打印相关函数;再比如,多个开发人员协作时,不小心定义了同名的变量、函数或类,最终导致编译报错,无法正常运行。
星火开发设计
6 天前
开发语言
·
c++
·
学习
·
算法
·
函数
·
知识
类型别名 typedef:让复杂类型更简洁
在C++编程中,我们常会遇到一些“冗长、复杂”的类型——比如指向函数的指针、嵌套的结构体、模板类型,或是长度较长的标准库类型(如std::vector<std::pair<int, std::string>>)。每次使用这些复杂类型都重复书写完整名称,不仅会增加代码冗余,还会降低代码的可读性和可维护性,甚至容易因书写失误引发编译错误。
星火开发设计
6 天前
java
·
开发语言
·
c++
·
学习
·
算法
·
知识
C++ 预处理指令:#include、#define 与条件编译
在C++程序的编译过程中,有一个容易被忽略但至关重要的环节——预处理阶段。它发生在编译器对源代码进行正式编译之前,由预处理程序(预处理器)对源代码中的“预处理指令”进行解析和替换,生成经过“净化”和“补充”的中间代码,再交给编译器进行编译。
星火开发设计
8 天前
开发语言
·
c++
·
学习
·
算法
·
函数
·
知识
函数占位参数:语法规则与实际应用场景
在C++函数编程中,我们除了常用的普通参数、默认参数,还有一种特殊的参数形式——函数占位参数(Placeholder Parameters)。它的语法非常独特:只声明参数类型,不指定参数名,看似“无用”,实则在函数重载、版本兼容、抽象接口设计等场景中发挥着不可替代的作用。
星火开发设计
9 天前
linux
·
开发语言
·
c++
·
学习
·
算法
·
知识
枚举类 enum class:强类型枚举的优势
在C++编程中,枚举类型是用于表示离散常量集合的基础工具,传统枚举(enum)虽能简化常量定义,但存在类型模糊、作用域污染、隐式转换等缺陷,在复杂项目中易引发难以排查的错误。C++11引入的枚举类(enum class),通过“强类型”和“限定作用域”两大核心特性,彻底解决了传统枚举的痛点,同时保留了枚举的简洁性。前文我们学习了共用体(union)的内存优化特性,枚举类常与共用体、结构体搭配使用(如作为标志位管理共用体成员类型),是提升代码安全性与可读性的重要工具。本文将从传统枚举的缺陷入手,深入解析枚举
0和1的舞者
10 天前
java
·
后端
·
学习
·
开发
·
知识
技术优化手册:从工具类到 MyBatis 配置与业务逻辑
1. 三个工具类的定位与联动逻辑联动逻辑(用户注册 / 登录核心流程):理解自动生成的 Mapper XML 中关键配置的关联关系、定义位置及复用方式,避免重复开发。
星火开发设计
11 天前
开发语言
·
c++
·
算法
·
内存
·
delete
·
知识
·
new
动态内存分配:new 与 delete 的基本用法
在 C++ 编程中,内存管理是核心能力之一,而动态内存分配则是实现灵活内存使用的关键。前文我们学习了指针、const 指针、引用等知识点,了解到指针可通过地址操作内存,但这些操作多基于栈上的静态内存(如普通变量、数组)。静态内存的大小和生命周期由编译器自动管理,无法满足运行时动态调整内存的需求(如不确定数组长度、按需创建对象)。此时,就需要通过 new 和 delete 运算符手动管理堆内存,实现动态内存分配与释放。本文将从动态内存的核心意义入手,详细讲解 new/delete 的基本语法、单变量/数组的
王老师青少年编程
11 天前
c++
·
知识
·
csp
·
高频考点
·
信奥赛
·
csp-s
·
提高组
信奥赛C++提高组csp-s知识详解及案例实践(汇总版)
信奥赛C++提高组csp-s之并查集 https://noicsp.blog.csdn.net/article/details/156587813?spm=1011.2415.3001.5331
星火开发设计
12 天前
开发语言
·
c++
·
学习
·
算法
·
指针
·
const
·
知识
const 指针与指针 const:分清常量指针与指针常量
在C++指针编程中,const与指针的组合是高频易错点,尤其是“常量指针”(const 指针)与“指针常量”(指针 const),二者语法格式仅差const位置,含义与用法却天差地别。前文我们已掌握指针、二级指针及引用的核心逻辑,本文将聚焦这两种特殊指针,从语法规则、本质差异、内存特性、实战场景四个维度逐一拆解,帮你精准区分二者边界,规避编程中的常见错误,彻底吃透const与指针的组合用法。
0和1的舞者
13 天前
经验分享
·
后端
·
开发
·
知识
·
总结
公共类的注意事项详细讲解
枚举实例的创建枚举实例的引用误区 1:不加 final,只要不写修改方法就没事。→ 风险:团队协作中新人可能误写修改方法,或通过反射强行修改,导致线上故障。→ final 是语法级强制锁,加了之后任何修改操作都会编译报错,从根源杜绝风险。
星火开发设计
15 天前
开发语言
·
c++
·
人工智能
·
算法
·
矩阵
·
函数
·
知识
二维数组:矩阵存储与多维数组的内存布局
在 C++ 编程中,一维数组适用于存储线性序列数据,而当需要处理表格化、矩阵化数据(如学生成绩表、图像像素矩阵)时,二维数组成为更合适的选择。二维数组本质是“数组的数组”,既延续了一维数组连续内存的特性,又通过行、列二维索引组织数据,同时其内存布局逻辑也为理解三维及以上多维数组奠定基础。本文将从二维数组的定义初始化、矩阵存储场景、内存布局原理、常见操作四个维度,带你吃透二维数组的核心逻辑,打通多维数据存储的认知壁垒。
星火开发设计
16 天前
java
·
开发语言
·
数据结构
·
c++
·
学习
·
数组
·
知识
C++ 数组:一维数组的定义、遍历与常见操作
在 C++ 编程中,数组是一种基础且常用的数据结构,用于存储一组相同类型的数据,并通过连续的内存空间组织这些数据,方便按索引快速访问。一维数组作为数组的基础形式,广泛应用于数据存储、遍历统计、排序查找等场景,是入门数据结构与算法的必备知识点。本文将从一维数组的定义与初始化、遍历方式、常见操作、内存特性四个维度,带你吃透一维数组的核心用法,夯实编程基础。
0和1的舞者
16 天前
java
·
后端
·
spring
·
系统
·
开发
·
知识
基于Spring的论坛系统-前置知识
软件生命周期就像一个项目从 “点子” 到 “退役” 的完整旅程,分成了 获取过程、开发过程、运行过程、维护过程 四大块,一共 10 个阶段。
星火开发设计
17 天前
java
·
开发语言
·
c++
·
学习
·
函数
·
知识
C++ 函数定义与调用:程序模块化的第一步
在 C++ 编程中,随着程序逻辑逐渐复杂,将冗长代码堆砌在 main 函数中会导致可读性差、维护困难、复用率低等问题。而函数作为模块化编程的核心载体,能将一段独立的功能逻辑封装起来,实现“一次定义、多次调用”,让程序结构更清晰、代码更易维护。本文将从函数的核心概念、定义语法、调用方式、参数与返回值等维度,带你入门函数编程,迈出程序模块化的第一步。
0和1的舞者
18 天前
笔记
·
后端
·
算法
·
leetcode
·
职场和发展
·
知识
非力扣hot100-二叉树专题-刷题笔记(一)
迭代实现我会用递归 + 迭代两种方法解决二叉树中序遍历问题:两种解法都能覆盖空树、单节点、普通树等所有场景,迭代解法更能体现对栈和遍历过程的理解。
星火开发设计
20 天前
java
·
开发语言
·
数据结构
·
学习
·
知识
·
循环
循环结构进阶:while 与 do-while 循环的适用场景
在 C++ 循环体系中,while 与 do-while 循环作为 for 循环的补充,核心优势在于无需预知循环次数,仅通过条件判断控制循环启停,更适合处理“循环次数依赖动态场景”的需求。二者语法相似但执行逻辑存在关键差异,适用场景各有侧重。本文将从语法解析、执行区别、适用场景、实战案例四个维度,带你吃透这两种循环的进阶用法,精准应对各类复杂循环场景。
星火开发设计
21 天前
开发语言
·
c++
·
学习
·
算法
·
switch
·
知识
·
分支
C++ 分支结构:if-else 与 switch-case 的用法与区别
在 C++ 程序执行中,默认遵循自上而下的线性执行流程,而分支结构能够打破这种线性顺序,根据指定条件的真假(或表达式的取值)选择执行不同的代码块,是构建复杂逻辑程序的核心语法之一。