logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【C++】 vector(代码实现+坑点讲解)

本文详细介绍了C++中vector容器的实现原理,主要包括:1)采用三指针模型管理动态连续内存;2)通过模板和迭代器实现泛型编程;3)实现构造函数、拷贝控制等核心功能;4)采用指数扩容策略优化性能;5)处理迭代器失效等关键问题。文章完整展示了vector类的设计框架,包括内存管理、元素操作和异常安全等实现细节,并提供了完整的代码实现,帮助读者深入理解STL容器的底层机制。

文章图片
#c++#开发语言#算法
【C++】认识vector(概念+题目OJ)

本文介绍了C++ STL中的vector容器,重点解析了其核心特性和使用方法。主要内容包括:1)vector作为动态数组的基本概念,采用三指针实现内存管理;2)常用构造方法和扩容机制(GCC采用2倍扩容,MSVC采用1.5倍扩容);3)基本操作如emplace原地构造、增删改查和容量管理;4)迭代器失效问题及解决方法;5)结合LeetCode题目展示了vector的实际应用,包括找单身狗和生成杨辉

文章图片
#c++#开发语言#算法
【C++】 vector(代码实现+坑点讲解)

本文详细介绍了C++中vector容器的实现原理,主要包括:1)采用三指针模型管理动态连续内存;2)通过模板和迭代器实现泛型编程;3)实现构造函数、拷贝控制等核心功能;4)采用指数扩容策略优化性能;5)处理迭代器失效等关键问题。文章完整展示了vector类的设计框架,包括内存管理、元素操作和异常安全等实现细节,并提供了完整的代码实现,帮助读者深入理解STL容器的底层机制。

文章图片
#c++#开发语言#算法
【C++】Stack和Queue(初认识和算法题OJ)

本文介绍了栈和队列两种线性数据结构及其应用。栈遵循LIFO(后进先出)原则,支持push、pop、top等操作,常用于函数调用、表达式求值等场景;队列遵循FIFO(先进先出)原则,支持push、pop、front等操作,适用于任务排队、BFS等场景。文章还提供了5个典型算法题的解法:最小栈实现、栈序列验证、二叉树层序遍历、逆波兰表达式求值以及双栈实现队列。这些题目展示了栈和队列在实际编程中的典型应

文章图片
#c++#开发语言#算法
【C++】模版进阶(特化+分离编译+非类型模版参数)

摘要:本文系统讲解了C++模板编程中的非类型模板参数和模板特化机制。非类型模板参数允许传递编译期常量值,支持整数、指针、引用等类型,常用于定义静态数组等场景。模板特化分为全特化(精确匹配特定类型)和偏特化(匹配类型模式),用于优化性能、适配特殊类型和实现类型特征。类模板支持全特化和偏特化,而函数模板仅支持全特化(推荐用重载替代)。最后介绍了模板分离编译的三种解决方案,推荐使用包含模式(头文件实现)

文章图片
#c++#数据结构#开发语言 +1
【C++】 继承与多态(中)

本文摘要主要探讨了C++中的继承与多态机制。在继承方面,重点分析了静态成员继承规则、多继承中的菱形继承问题及其解决方案(虚继承),通过虚基类表解决数据冗余和访问二义性问题。在多态方面,详细阐述了静态多态(编译期确定)和动态多态(运行期确定)的实现方式,强调虚函数重写是实现动态多态的关键,并介绍了协变、析构函数重写等特殊情况。最后讲解了纯虚函数和抽象类的特性,指出抽象类必须被完全重写才能实例化。全文

文章图片
#c++#开发语言#算法
【C++】 继承与多态(下)

摘要:多态通过虚函数表实现动态绑定,运行时根据对象类型确定调用的虚函数地址。虚表存储类中所有虚函数指针,派生类重写虚函数时会覆盖基类虚函数地址。静态绑定在编译时确定函数地址,动态绑定在运行时通过虚表查找。派生类包含继承的基类部分和自身成员,共享基类虚指针但虚表内容不同。继承体现父子关系,派生类对象包含基类子对象的内存布局。

文章图片
#c++#开发语言
【C++】 认识STL set与map(基础接口+题目OJ运用)

本文详细介绍了C++ STL中的set和map容器。set是基于红黑树实现的有序不重复集合,具有自动排序、高效查找(O(logn))等特点,适用于去重、有序存储等场景。map是键值对容器,同样基于红黑树,支持自动按键排序,提供[]运算符和insert等插入方式,适用于有序键值存储和快速查找。文章还对比了set与multiset、map与multimap的区别,并通过LeetCode题目展示了实际应

文章图片
#c++#开发语言#算法 +1
【C++】 红黑树封装 STL set/map 超详细解析

本文详细解析了STL中set和map如何通过红黑树实现高效封装。核心要点包括:1)红黑树满足有序性、唯一性和O(logN)操作需求;2)通过key萃取器(KeyOfValue)统一处理set的key和map的pair.first;3)set/map本质是红黑树的适配器,存储结构分别为Key和pair<const Key,Value>;4) 源码实现展示红黑树模板与迭代器设计,以及set

文章图片
#c++#开发语言
【C++】 哈希表 unordered_map 与 unordered_set(底层原理 + 线性哈希表代码实现)

本文深入解析C++11中的unordered_map和unordered_set哈希表容器,从底层原理到实际应用全面剖析。主要内容包括:1. 核心特性对比:与有序容器的区别,突出哈希表O(1)查询优势;2. 底层机制详解:哈希函数、桶定位、链地址法解决冲突及自动扩容原理;3. 高级使用技巧:自定义类型作为key的方法、底层桶操作API及[]运算符的注意事项;4. 哈希算法分类:系统梳理10余种哈希

文章图片
#c++#散列表#开发语言
    共 31 条
  • 1
  • 2
  • 3
  • 4
  • 请选择