字母异位词分组
本文讲解字母异位词分组,利用排序后的字符串作为哈希键归类单词,给出C++代码、复杂度分析及字母计数优化思路。
Vibe Coding 产品研究
Vibe Coding是以自然语言驱动大模型生成代码的新型开发方式,开发者从编码转向需求描述与效果把关,典型流程包括描述意图、生成代码和验收迭代,工具分AI编辑器和云端全栈平台,适合快速原型但存在隐患。
模板元编程
模板元编程通过模板特化与递归实例化,将计算从运行期转移到编译期,实现零开销和类型安全。本文从起源到现代简化,全面拆解其核心原理与实战应用,助你从入门到掌握这一C++高级特性。
模板折叠与SFINAE模板替换
本文解析C++17模板折叠与SFINAE的原理、语法及实际应用,通过示例展示二者结合编写简洁高效泛型代码的方法,并补充相关细节。
线程池
文章围绕线程池展开,介绍其复用线程、管控并发等特性,详解五种常见类型及两种运行模式,并提及C++11实现要点,帮助读者掌握并发任务处理技巧。
lambda表达式基础
代码仓库shanchuann/CPP-Learninng,进阶内容参见分类: 现代C++之旅 | lambda表达式 Lambda表达式是C++11中引入的常用特性,这类特性最早在C#3.5中落地,Java则是在8版本中才加入对应支持。该特性源自函数式编程理念,也是现代编程语言的常见设计方向,主要为解决传统临时函数对象编写繁琐、代码分散的问题而生。 Lambda表达式具备多项实用优势,采用声明式编程风格,可就地匿名定义目标函数或函数对象,无需额外编写独立的命名函数或函数对象,能以更直接的方式编写程序,兼顾可读性与可维护性。同时写法足够简洁,避免了代码膨胀和功能分散,让开发者更聚焦当前逻辑,也能提升开发效率。此外,它还能在合适的场景实现功能闭包,让程序整体更具灵活性。 基础语法Lambda表达式本质是匿名函数,同时可通过指定规则捕获一定范围内的外部变量,完整语法形式可归纳为:[capture](params) opt->ret{body;};。其中各部分含义清晰,capture为捕获列表,用于控制外部变量的访问规则;params是参数列表,承接函数传入的参数;o...
thread
代码仓库shanchuann/CPP-Learninng 在C++11标准推出之前,C++开发者实现多线程编程只能依赖平台原生API,例如Linux环境下的pthread线程库,此类方式编码流程繁琐、上手门槛较高,且存在平台兼容性问题,跨平台移植难度较大。C++11首次在语言层面引入标准多线程库,通过头文件对底层线程操作进行封装,既简化了多线程开发流程,也保留了Linux线程的底层运行逻辑与内核原理。本文系统梳理C++11 thread的相关概念、实现方法、底层逻辑与使用注意事项,完整覆盖多线程基础与进阶技术内容,适配常规开发与技术学习需求。 基础知识依赖头文件使用C++11标准线程相关功能,需提前包含对应头文件,头文件是线程类、同步工具及相关函数的定义载体,缺失相关头文件会直接引发编译报错,基础多线程开发需包含的核心头文件如下: 12345678#include <iostream>// C++11标准线程核心头文件,封装thread类#include <thread>// 线程同步互斥锁所需头文件#include <mutex>...
weak_ptr
代码仓库shanchuann/CPP-Learninng weak_ptr是C++11标准中专为配合shared_ptr设计的弱引用智能指针,不属于独立的资源管理指针,不具备普通指针的解引用、成员访问能力,核心定位是共享资源的生命周期观测者,而非所有者。其设计的核心目的,就是破解shared_ptr的循环引用难题,同时规避共享场景下的悬空指针非法访问风险,填补shared_ptr共享机制的安全漏洞,是现代C++智能指针体系中不可或缺的配套组件。 底层核心特性 不占用强引用计数:weak_ptr绑定shared_ptr后,仅递增控制块内的弱引用计数,绝对不影响shared_ptr的强引用计数,不会延长托管对象的生命周期,这是破解循环引用的核心原理; 无资源所有权:weak_ptr不负责对象的创建与释放,既不会接管资源,也不会触发析构释放,全程仅观测对象生命周期,不干预shared_ptr的资源管控逻辑; 依赖shared_ptr初始化:weak_ptr无法直接通过new或裸指针初始化,只能通过已有的shared_ptr或其他weak_ptr拷贝、移动初始化,和shar...
shared_ptr
C++11共享所有权智能指针,基于引用计数自动管理内存,彻底解决内存泄漏与悬空指针问题,是STL容器的标准首选。
unique_ptr
代码仓库shanchuann/CPP-Learninng C++11标准依托右值引用、移动语义两大核心语法特性,搭建起一套完备、安全且高效的智能指针体系,彻底解决了传统裸指针在内存管理中的内存泄漏、重复释放、悬空指针等核心痛点,覆盖独占管理、共享管理、循环引用防护等全场景开发需求,是现代C++工程开发中内存管理的标准方案。实际使用时需包含<memory>头文件,整套体系包含三类智能指针,三者各司其职、相互配合,分别适配不同的资源管理逻辑,全面满足日常开发的各类内存管控需求。 unique_ptr是C++11推出的独占所有权型智能指针,专门替代C++98中存在严重设计缺陷的auto_ptr,也是日常开发中独占式资源管理的首选方案。其核心规则为同一时间仅允许一个指针持有资源所有权,安全性与运行效率远超传统裸指针与旧版auto_ptr,从根源规避了独占资源的非法共享问题。 特点 排他所有权模式:两个指针绝对不能指向同一个资源,从根源杜绝重复释放、悬空指针问题; 禁用拷贝语义:不提供拷贝构造函数与左值赋值重载,禁止值拷贝传递,阻断非法共享路径; 支持移动语义:提...







