
C/C++编程语言
文章平均质量分 80
C/C++编程语言学习笔记
浩瀚之水_csdn
路漫漫其修远兮,吾将上下而求索,立刻行动,坚持,努立
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
std::unique_ptr、std::shared_ptr 和 std::weak_ptr
C++11智能指针核心解析:unique_ptr、shared_ptr和weak_ptr 摘要:C++11引入的智能指针通过自动资源管理提升内存安全性。unique_ptr提供独占所有权,轻量高效,适合单一所有者场景;shared_ptr采用引用计数实现共享所有权,适用于多所有者但需警惕循环引用;weak_ptr作为观察者,既可打破shared_ptr循环引用,又能安全访问共享资源。原创 2025-07-13 14:36:09 · 419 阅读 · 0 评论 -
std::unique_ptr、std::shared_ptr 和 std::weak_ptr 与 new
在 C++ 中,new操作符用于在堆上动态分配内存,返回指向该内存的。而和是智能指针,用于由new分配的内存,避免内存泄漏和悬挂指针。以下是它们与new。原创 2025-07-13 14:35:53 · 426 阅读 · 0 评论 -
类 NoCopyable 代码解析
禁止类的拷贝行为(包括拷贝构造和拷贝赋值),通常作为基类使用,确保派生类不可被复制。原创 2025-06-07 20:44:45 · 455 阅读 · 0 评论 -
【C++】std::max_element 详解
通过灵活使用 std::max_element,可高效解决极值查找问题,尤其适用于需要自定义比较逻辑或处理复杂对象的场景。原创 2025-05-17 05:03:03 · 702 阅读 · 0 评论 -
【C++】std::sort算法的详解
本文详细介绍了C++中std::sort的使用方法、底层实现原理及优化策略。std::sort默认采用升序排序,支持自定义排序规则,如降序排序或Lambda表达式。其底层算法为Introsort,结合了快速排序、堆排序和插入排序,确保时间复杂度为O(NlogN)。原创 2025-05-14 05:30:43 · 1031 阅读 · 0 评论 -
【C++】std::vector的用法详解
C++中的vector是一种动态数组,其底层实现基于连续内存块,原创 2025-05-13 18:47:58 · 605 阅读 · 0 评论 -
【C++】命名空间(Namespace)详解
C++的命名空间(Namespace)是一种用于组织代码和防止命名冲突的重要机制。其核心作用包括避免命名冲突、增强代码模块化以及支持标准库扩展。原创 2025-05-12 20:50:42 · 900 阅读 · 0 评论 -
【设计模式】结构型模式之代理模式深度解析
代理模式(Proxy Pattern)是一种结构型设计模式,通过引入代理对象间接访问目标对象,实现访问控制、功能增强、位置抽象和资源管理等核心功能。其核心公式为“客户端→代理→目标对象”,通过代理层实现透明性与可控性的统一。原创 2025-05-10 05:33:50 · 617 阅读 · 0 评论 -
【设计模式】结构型模式之享元模式深度解析
享元模式(Flyweight Pattern)是一种通过对象共享来优化内存使用的设计模式,特别适用于存在大量相似对象的场景。其核心思想是分离对象的内在状态(不变)与外在状态(可变),通过共享不变的内在状态,减少内存占用,将指数级内存增长转为线性增长。享元模式的关键角色包括抽象享元接口、具体享元、享元工厂和客户端。在C++实现中,享元模式可以用于大规模粒子系统等场景,通过共享粒子类型属性来优化内存和性能。典型应用场景包括游戏开发、文本编辑器、CAD/CAM系统、Web应用和物联网。享元模式通过合理应用,可以显原创 2025-05-09 14:49:20 · 550 阅读 · 0 评论 -
【设计模式】结构型模式之组合模式深度解析
组合模式(Composite Pattern) 是处理树形结构的利器,通过统一接口让客户端以一致的方式处理单个对象与对象组合,实现"部分-整体"的层次结构管理。其本质是递归算法的面向对象实现,广泛应用于需要树状数据结构的场景。原创 2025-05-06 08:21:23 · 902 阅读 · 0 评论 -
【设计模式】结构型模式之装饰器模式深度解析
装饰器模式(Decorator Pattern) 是一种动态扩展对象功能的灵活方案,通过组合代替继承,在不修改原有类的前提下,为对象层层叠加新功能,完美践行开放-封闭原则(OCP)。原创 2025-04-30 16:55:00 · 611 阅读 · 0 评论 -
【设计模式】结构型模式之桥接模式深度解析
桥接模式(Bridge Pattern) 是解耦抽象与实现的利器,通过组合代替继承,允许两个变化维度(抽象层与实现层)独立扩展,避免多层继承导致的类爆炸问题。原创 2025-04-29 11:15:53 · 846 阅读 · 0 评论 -
【设计模式】结构型模式之适配器模式详解
适配器模式是一种 结构型设计模式,其核心作用是 将不兼容的接口转换为客户端期望的接口,如同现实世界中的电源转接器。该模式通过创建 中间转换层 解决接口不匹配问题,实现不同系统间的协同工作。原创 2025-04-28 09:12:52 · 285 阅读 · 0 评论 -
【设计模式】结构型模式的综述
结构型模式(Structural Patterns)专注于如何通过 组合对象和类 来构建灵活、可扩展的软件架构,解决对象间关系复杂性的核心问题。原创 2025-04-27 11:29:19 · 844 阅读 · 0 评论 -
【设计模式】工厂模式之抽象工厂详解
抽象工厂模式(Abstract Factory Pattern)是创建型设计模式的集大成者,专为创建相关或依赖对象的家族而设计,无需指定具体类。原创 2025-04-26 07:14:11 · 797 阅读 · 0 评论 -
【设计模式】工厂模式之工厂方法详解
工厂方法模式是构建灵活对象创建系统的基石,特别适合需要长期维护和扩展的中大型项目。原创 2025-04-26 07:09:21 · 880 阅读 · 0 评论 -
【设计模式】工厂模式之简单工厂模式详解
简单工厂模式是理解更复杂工厂模式的基础,适合作为设计模式学习的切入点。在实际工程中,建议结合项目规模和发展预期选择合适方案。原创 2025-04-26 07:06:25 · 489 阅读 · 0 评论 -
【设计模式】工厂模式的不同类型、实现方法或应用场景
工厂模式是创建型设计模式的经典实现,主要用于解耦对象的创建和使用。原创 2025-04-25 20:59:22 · 660 阅读 · 0 评论 -
【C++】C++23 核心特性
C++ 的演进持续聚焦于性能、安全性和开发效率的平衡,适合系统编程、游戏引擎和高性能计算等场景。原创 2025-04-22 20:58:36 · 1212 阅读 · 0 评论 -
【C++】C++20 特性详细总结
C++20 是继 C++17 之后的重大更新,引入了多项革命性特性,显著提升了代码的简洁性、安全性和性能。原创 2025-04-21 20:14:58 · 1871 阅读 · 0 评论 -
【C++】C++17 特性详细总结
C++17 显著提升了代码的可读性与性能,使其更适合大型项目和高性能计算场景。建议优先掌握结构化绑定、并行算法和文件系统操作,以充分释放现代C++的潜力。原创 2025-04-15 08:20:12 · 1530 阅读 · 0 评论 -
【C++】auto 类型的详细总结
在C++11及后续标准中,auto关键字被赋予了全新的语义,成为现代C++中类型推导的核心工具。原创 2025-04-15 08:11:10 · 1286 阅读 · 0 评论 -
【C++】 Lambda 表达式详解
Lambda 表达式是 C++11 引入的匿名函数对象,用于简化代码、支持函数式编程风格,并替代传统函数对象(如仿函数)。其核心功能是在作用域内捕获变量,并定义轻量级的局部函数逻辑。原创 2025-04-12 21:53:10 · 1053 阅读 · 0 评论 -
【C++】C++14 特性的详细总结
作为 C++11 的完善版本,C++14 进一步简化了现代 C++ 的开发流程,提升了泛型编程和元编程的灵活性,为后续版本(C++17/20)奠定了基础。原创 2025-04-12 21:44:45 · 1100 阅读 · 0 评论 -
【C++】完美转发的理解
完美转发(Perfect Forwarding)是 C++11 引入的关键特性,旨在在泛型代码中保持参数的原始值类别(左值/右值),确保传递给其他函数时保留其类型信息,从而正确触发重载和优化(如移动语义)。原创 2025-04-11 08:44:40 · 544 阅读 · 0 评论 -
【C++】移动语义的理解
移动语义(Move Semantics)是 C++11 引入的核心特性,旨在通过资源所有权转移(而非拷贝)提升程序性能,尤其适用于管理动态资源(如内存、文件句柄)的类。原创 2025-04-11 08:42:47 · 902 阅读 · 0 评论 -
【C++】左值引用和右值引用的理解
在C++中,左值引用和右值引用是两种不同的引用类型,分别用于绑定到左值和右值。原创 2025-04-11 08:40:48 · 802 阅读 · 0 评论 -
【C++】右值引用的理解
右值引用是 C++11 引入的核心特性,用于实现移动语义和完美转发,显著提升资源管理效率和泛型编程灵活性。原创 2025-04-11 08:32:21 · 479 阅读 · 0 评论 -
【C++】左值(lvalue)和右值(rvalue)的理解
在 C++ 中,左值(lvalue)和右值(rvalue)是表达式性质的术语,直接影响对象的生命周期、内存管理及函数重载等行为。原创 2025-04-11 08:30:05 · 706 阅读 · 0 评论 -
【C++】C++11特性的详解
C++11 是现代 C++ 的基石,通过智能指针、移动语义、Lambda 等特性大幅提升代码的安全性、性能和可读性,奠定了后续版本(C++14/17/20)的基础。建议优先掌握 auto、智能指针、右值引用和 Lambda 表达式,以快速提升开发效率。原创 2025-04-11 08:09:49 · 1284 阅读 · 0 评论 -
【智能指针】循环引用的陷阱
当两个或多个对象通过 std::shared_ptr 互相持有对方的所有权,导致引用计数无法归零,资源无法释放的现象。原创 2025-04-08 08:53:47 · 585 阅读 · 0 评论 -
【智能指针】缓存未命中详解
缓存未命中(Cache Miss) 是计算机体系结构中的术语,指当 CPU 需要访问某个数据时,该数据不在高速缓存(Cache) 中,必须从更慢的主内存(RAM)中加载。这一过程会导致性能下降,因为访问主存的速度通常比访问缓存慢数十至数百倍。原创 2025-04-08 08:50:48 · 1056 阅读 · 0 评论 -
【智能指针】std::make_shared和new
优先使用std::make_shared:适用于大多数场景,兼顾性能和安全性。特殊场景用new:需要自定义删除器、内存敏感或访问私有构造函数时选择。原创 2025-04-08 08:43:58 · 559 阅读 · 0 评论 -
【智能指针】std::auto_ptr
std::auto_ptr 是 C++98 引入的智能指针,用于管理动态内存,但因其设计缺陷在 C++11 中被弃用,C++17 中正式移除。原创 2025-04-08 08:37:07 · 382 阅读 · 0 评论 -
【智能指针】std::weak_ptr
std::weak_ptr 是 C++ 中与 std::shared_ptr 配套使用的智能指针,用于观察共享资源而不影响其生命周期。原创 2025-04-08 08:35:46 · 502 阅读 · 0 评论 -
【智能指针】std::shared_ptr
std::shared_ptr 是 C++ 中用于共享所有权的智能指针,通过引用计数机制管理动态资源。原创 2025-04-08 08:33:22 · 1259 阅读 · 0 评论 -
【智能指针】std::unique_ptr
std::unique_ptr 是 C++ 中管理动态内存的首选工具,通过强制独占所有权和自动释放机制,显著减少内存泄漏和资源管理错误。优先使用 std::make_unique 创建实例,仅在需要时使用自定义删除器或裸指针操作。原创 2025-04-08 08:29:08 · 1032 阅读 · 0 评论 -
【智能指针】最佳实践
智能指针是C++中用于自动化资源管理(尤其是动态内存)的核心工具,通过RAII(资源获取即初始化)机制避免内存泄漏。原创 2025-04-08 08:26:43 · 599 阅读 · 0 评论 -
深入浅出之智能指针
C++智能指针是一种用于自动管理动态分配内存的类模板,旨在帮助开发者避免手动管理内存时容易出现的内存泄漏和悬挂指针等问题。C++11标准引入了三种主要的智能指针:std::unique_ptr、std::shared_ptr 和 std::weak_ptr。原创 2025-04-08 08:14:08 · 877 阅读 · 0 评论 -
chrono库的duration_cast 函数深度解析
duration_cast 是 C++ <chrono> 库中用于显式转换时间段(duration)单位的核心函数,通过类型安全的模板操作实现时间单位的精确控制。原创 2025-04-02 13:38:45 · 410 阅读 · 0 评论