logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++基础(13)——list类的模拟实现

本文摘要:本文详细介绍了如何模拟实现一个C++ STL中的list容器。主要内容包括:1. 节点结构体list_node的实现,包含数据成员和前驱/后继指针;2. 迭代器结构体list_iterator的实现,通过运算符重载实现对链表节点的访问和遍历;3. list类的主要功能实现,包括构造函数、析构函数、拷贝控制函数、迭代器相关函数以及插入删除等操作。特别强调了带头双向循环链表的结构特点,以及如

文章图片
#windows#网络#c++ +1
C++基础(14)——stack和queue类的使用和模拟实现

本文介绍了如何基于双端队列(deque)实现栈(stack)和队列(queue)这两种容器适配器。通过模板类封装,栈使用deque的push_back()、pop_back()等操作实现其LIFO特性,队列则利用push_back()和pop_front()实现FIFO特性。两种结构都提供了基本的元素操作接口(如push/pop)、访问方法(top/front/back)以及容量查询(size/e

文章图片
#c++#开发语言
C++基础(14)—— priority_queue的使用和模拟实现

本文介绍了优先级队列(堆)的使用及其模拟实现。优先级队列本质是通过vector容器封装,利用堆算法维护元素优先级顺序。文章详细讲解了priority_queue的三种定义方式(大根堆、小根堆、默认方式),并展示了基本操作函数(push、pop、top等)的使用示例。重点分析了堆的两个核心算法:向上调整(插入元素时维护堆结构)和向下调整(删除元素时维护堆结构),通过图示和代码说明了算法流程。最后给出

文章图片
#c++#开发语言
C++基础(15)——关联式容器的使用和介绍(set和map)

本文介绍了C++ STL中的关联式容器,重点讲解了set和map两大类容器及其变体(multiset/multimap)。关联式容器通过键值对存储数据,提供高效查找功能。文章详细阐述了set的基本概念和使用方法,包括插入、删除、查找等操作,并对比了set与multiset的区别(是否允许键值重复)。对于map容器,重点介绍了键值对的定义、插入方式(匿名对象和make_pair)、查找删除操作以及[

文章图片
#c++#开发语言
C++基础(16)——用红黑树封装出map和set

本文摘要: 本文详细介绍了红黑树及其在STL容器set和map中的实现。主要内容包括:1) 红黑树节点的模板参数设计,通过K和T参数区分set和map的数据存储方式;2) 引入仿函数机制解决不同类型节点Key值的比较问题;3) 实现红黑树的正向迭代器,包括++/--操作的中序遍历逻辑;4) 基于红黑树完成set和map的封装实现,重点处理了map的operator[]接口。文章提供了完整的红黑树源

文章图片
#算法#开发语言#c++ +1
C++基础(18)——使用哈希表封装unordered_map和unordered_set

本文详细介绍了哈希表的实现原理和代码实现,主要包括以下内容: 哈希表数据结构设计: 采用开散列方式实现哈希表 使用vector存储哈希节点指针 包含插入、查找、删除等基本操作 关键实现细节: 模板参数控制,支持unordered_map和unordered_set 哈希函数设计,特别处理string类型 迭代器实现,包括++操作符重载 负载因子控制和动态扩容机制 完整代码实现: 哈希表主体代码 迭

文章图片
#c++#散列表#开发语言
C++基础(19)——位图的介绍和使用

本文介绍了C++中bitset容器的概念和使用方法。bitset是一种高效的位图数据结构,可用于处理大规模数据的查找、去重等场景。文章详细讲解了bitset的三种定义方式、常用成员函数(如size()、count()、set()等)以及各种运算符的重载使用,包括移位运算符、关系运算符、赋值运算符和位运算符等。通过代码示例展示了bitset的基本操作,如位设置、翻转、转换等,并说明了其在节省内存空间

文章图片
#c++#开发语言
C++基础(20)——位图的模拟实现

本文介绍了bitset类的接口函数实现。主要内容包括:构造函数初始化bitset并分配存储空间;基本操作函数set、reset、flip、test的实现原理及代码;统计函数size和count的实现方法;以及判断函数any、none、all的逻辑实现。文章详细说明了每个函数的具体实现步骤,包括位运算操作、容器遍历等关键点,并配有图示说明位操作过程。这些实现基于vector<unsigned

文章图片
#算法#c++#开发语言
C++基础(21)——内存管理

本文介绍了C/C++中的内存管理机制,包括内存分布、动态内存管理方式及常见面试题。主要内容包括:C语言使用malloc/calloc/realloc/free进行动态内存管理,C++则通过new/delete操作符实现更高效的内存管理,尤其针对自定义类型会自动调用构造/析构函数。文章详细解析了operator new/delete的底层实现原理,并介绍了定位new表达式的使用场景。最后总结了mal

文章图片
#c++#面试#开发语言
C++进阶(8)——异常

C++异常处理机制通过try、catch和throw关键字实现错误检测与处理的分离。try块包裹可能出错的代码,throw抛出异常对象,catch捕获并处理异常。异常处理遵循栈展开规则,沿着调用链查找匹配的catch子句。文中详细介绍了异常匹配规则、栈展开过程、异常安全等核心概念,并提供了多个代码示例(如除零异常、服务器模块异常处理等)。特别强调了通过继承std::exception创建自定义异常

文章图片
#开发语言#c++#面试
    共 26 条
  • 1
  • 2
  • 3
  • 请选择