2025年5月22日

C++ auto与decltype关键字详解

摘要: 一、auto关键字核心特性 1.1 基本功能 自动类型推导:编译器根据初始化表达式推断变量类型 简化代码:替代复杂类型声明(如迭代器、模板类型) std::vector<std::map<int, std::string>> data; auto iter = data.begin(); // 推导 阅读全文

posted @ 2025-05-22 01:12 无穷小学弟 阅读(9) 评论(0) 推荐(0)

深入理解C++左值、右值与完美转发

摘要: 一、左值与右值的本质区别 1.1 基本定义 左值(Lvalue):具有持久状态的对象 特点:有明确的内存地址 示例:变量、解引用指针 int x = 10; // x是左值 int* p = &x; // 可以取地址 右值(Rvalue):临时存在的对象 特点:即将销毁的临时值 示例:字面量、函数返 阅读全文

posted @ 2025-05-22 01:07 无穷小学弟 阅读(2) 评论(0) 推荐(0)

深入理解C++移动语义与资源管理

摘要: 一、移动语义:从拷贝到资源转移 1.1 拷贝构造 vs 移动构造 拷贝构造:创建独立副本,源对象保持不变// 传统拷贝构造函数 MyClass(const MyClass& other) { arr = new int[size]; // 深拷贝 memcpy(arr, other.arr, siz 阅读全文

posted @ 2025-05-22 01:02 无穷小学弟 阅读(5) 评论(0) 推荐(0)

2025年5月21日

C++动态内存管理完全指南:深入理解new/delete的奥秘

摘要: 一、基础概念与核心原则 1.1 内存操作的核心搭档 new:内存分配+对象构造(相当于雇装修队买毛坯房并装修) delete:对象析构+内存释放(相当于拆房子前先清空家具再爆破) 黄金法则:new与delete必须成对出现,就像钥匙和锁的关系 1.2 构造函数调用时机 class Student { 阅读全文

posted @ 2025-05-21 18:26 无穷小学弟 阅读(6) 评论(0) 推荐(0)

C++异常处理完全指南:从入门到实战

摘要: 一、异常处理的价值与原理 想象你是一家餐厅的服务员,当厨房出现突发状况时(比如食材用完),需要有一套机制及时通知前台。C++的异常处理机制就像这样的预警系统,能够在程序运行出现意外时,将问题"层层上报"直到被妥善处理。 核心概念速览 异常:程序运行时出现的非正常状态(如除零错误) try-catch 阅读全文

posted @ 2025-05-21 18:21 无穷小学弟 阅读(8) 评论(0) 推荐(0)

C++动态内存管理完全指南:掌握new/delete的正确打开方式

摘要: 一、动态内存管理的核心价值 在C++开发中,动态内存管理直接影响着程序的性能和可靠性。通过new和delete操作符,我们可以实现: 按需分配:运行时动态决定内存需求 生命周期控制:精确管理对象生存周期 资源优化:避免静态分配的内存浪费 二、基础操作指南 2.1 单个对象管理 class GameO 阅读全文

posted @ 2025-05-21 12:22 无穷小学弟 阅读(15) 评论(0) 推荐(0)

2025年5月20日

深入理解volatile关键字:CPU缓存与多线程编程的关键

摘要: 一、现代CPU架构核心认知 1.1 多核CPU的缓存结构 现代CPU采用多核心架构,每个核心都有自己的专属缓存区,形成金字塔形存储体系: [核心0] --> [缓存0] [核心1] --> [缓存1] 共享缓存 --> 主存 [核心2] --> [缓存2] 专属缓存:每个核心独享的高速存储(L1/L 阅读全文

posted @ 2025-05-20 22:07 无穷小学弟 阅读(4) 评论(0) 推荐(0)

快速理解C++中的enum class

摘要: 快速理解C++中的enum class 什么是enum class? enum class是C++11引入的强类型枚举,它比传统enum更安全好用。主要解决两个问题: 命名冲突:传统enum的成员像全局变量,不同enum的同名成员会冲突 2.乱用数字:传统enum可以和整数随便转换,容易出错 举个栗 阅读全文

posted @ 2025-05-20 22:01 无穷小学弟 阅读(56) 评论(0) 推荐(0)

C++ inline函数详解:从基础到实践

摘要: C++ inline函数详解:从基础到实践 一、基本概念与核心特性 1.1 inline的本质作用 inline是C++中用于优化函数调用开销的关键字。它向编译器建议将函数体直接展开到调用点,省去函数调用的压栈、跳转和返回操作。但需注意: 仅是建议而非强制命令,编译器有权忽略(如函数体过大时) 适用 阅读全文

posted @ 2025-05-20 21:52 无穷小学弟 阅读(29) 评论(0) 推荐(0)

2025年5月18日

【LeetCode Hot 100】移动零

摘要: 1. 移动零 题目链接:LeetCode 移动零 问题描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。要求: 必须原地操作,不能拷贝数组 尽量减少操作次数 示例 示例1 输入:[0,1,0,3,12] 输出:[1,3,12,0,0] 示例2 输入: 阅读全文

posted @ 2025-05-18 11:00 无穷小学弟 阅读(9) 评论(0) 推荐(0)

导航