logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【STL/数据结构】哈希表和unordered系列容器的封装

本文介绍了C++11中unordered系列关联式容器的实现原理与封装方法。首先对比了红黑树容器与哈希容器的特性,指出unordered容器通过哈希表实现O(1)平均时间复杂度。随后详细讲解了哈希表的核心概念,包括哈希函数设计(直接定址法、除留余数法)、哈希冲突处理方法(开放定址法、链地址法)以及装填因子控制策略。最后展示了基于链地址法的哈希表实现,并封装成unordered_set和unorde

文章图片
#c++#散列表#开发语言
【C++入门】7.C++ vector的常见用法( 快速解析 )

本文介绍了C++中vector容器的基本使用。vector是一种动态数组,支持自动扩容,比传统数组更灵活。文章详细讲解了vector的定义方式、初始化方法(包括花括号和圆括号赋值)、四种遍历方式([]操作符、at函数、迭代器、范围for循环)。重点介绍了vector的常见操作:push_back/pop_back尾部增删元素、insert/erase插入删除元素、swap交换容器内容、find查找

文章图片
#c++#开发语言
【Linux】权限解析(从chmod到umask和粘滞位)

《Linux权限管理完全指南》摘要 本文系统讲解了Linux权限管理的核心概念与操作方法。首先介绍了权限的基本定义,解释了Linux如何通过权限机制控制用户对文件和目录的访问。重点分析了三类用户身份(所有者、所属组、其他用户)与三种权限属性(读、写、执行)的对应关系。文章详细说明了权限修改方法,包括chmod命令的数字和符号表示法,以及chown/chgrp命令修改文件归属。特别强调了目录权限的特

文章图片
#linux#服务器#运维
【C++入门】8.C++ list的模拟实现

本文深入讲解了C++中list容器的底层实现原理。首先介绍了list的底层结构是带头双向循环链表,并展示了结点类的实现。重点分析了迭代器的设计思想,解释了为什么list需要自定义迭代器类而非原生指针,并详细实现了迭代器的运算符重载功能。随后详细讲解了list类的构造函数、拷贝构造、析构函数等核心成员函数的实现,以及迭代器相关的begin/end、rbegin/rend等操作。最后介绍了list的增

文章图片
#c++#list#开发语言
【C++入门】9.C++ stack和queue的介绍和使用

stack(栈)是一种容器适配器,专门用在 “后进先出”的场景里,元素的插入和提取只能在容器的一端进行。stack 这种容器适配器,是把某个特定的类封装起来当作底层容器,还提供一组专门的函数来访问里面的元素。它把特定类当作底层元素,往特定容器的尾部(也就是栈顶)进行压入和弹出操作。empty:判断容器是否为空的操作back:获取容器尾部元素的操作push_back:往容器尾部插入元素的操作pop_

文章图片
#c++#开发语言
【C++入门】10. priority_queue的优先队列

priority_queue是 C++ 标准模板库(STL)中的容器适配器,用于实现优先队列这一特殊数据结构。优先队列中的元素会按照优先级排序,每次取出的都是优先级最高的元素,它的底层实现通常采用堆(heap)数据结构。在 C++ 中,模板类定义在**queue** 头文件中。我们可以通过指定元素类型和比较函数(如函数指针、函数对象或 Lambda 表达式),来创建不同排序规则的优先队列。

文章图片
#c++
【数据结构】红黑树

红黑树是一种自平衡二叉搜索树,通过节点着色(红/黑)和旋转操作维持近似平衡。其核心特性包括:根节点和叶子节点为黑色,无连续红节点,各路径黑节点数相同。插入时新节点默认为红色,若父节点为红则需调整(变色或旋转)。相比AVL树,红黑树牺牲部分查询效率换取更高的插入/删除性能,旋转操作更少(最多3次),适用于频繁修改场景。验证时需检查颜色约束、路径黑节点数一致性和无连续红节点等特性。

文章图片
#数据结构#c++#算法
【C++/STL】map和multimap的使用

本文介绍了C++ STL中的关联式容器map及其变体multimap。map基于红黑树实现,存储键值对(pair类型),键自动排序且不可修改,值可修改。与set相比,map支持通过键访问和修改值。文章详细讲解了map的构造、插入(insert)、删除(erase)和operator[]等操作,重点分析了operator[]的实现原理:通过插入缺省值并返回引用实现访问和修改。multimap与map

文章图片
#c++#开发语言
【C++/STL】set和multiset的使用

摘要:本文介绍了STL中的set容器,它是一种关联式容器,基于红黑树实现,具有自动排序和快速查找的特性。文章详细讲解了set的构造函数、插入(insert)、查找(find)、删除(erase)等基本操作,以及与multiset的区别:set不允许重复元素而multiset允许。此外还介绍了键值对(pair)结构、upper_bound等实用方法,展示了set在数据存储和检索中的高效性。通过具体代

文章图片
#c++#开发语言
到底了