哈希一、unordered系列关联式容器1.unordered系列关联式容器2.unordered_map3.unordered_set二、底层结构1.哈希概念2.哈希冲突3.哈希函数4.解决哈希冲突(1)闭散列(2)开散列三、封装哈希表1.模板参数列表的改造2.迭代器3.HashTable改造4.my_unordered_map5.my_unordered_set四、哈希的应用1.位图2.布隆过滤器一、unordered系列关联式容器1.unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到O(logN),即最差情况下需要比较红黑树
目录一、前言二、什么是迭代器 三、迭代器的分类与接口💦迭代器的分类 💦迭代器的接口 💦迭代器与接口之间的关联 四、string类中迭代器的应用💦定义string类----迭代器 💦string类中迭代器进行遍历✨begin+end正向(可读可修改)迭代器 ✨begin+end正向(只读)迭代器 ✨rbegin+rend反向(可读可修改)迭代器 ✨rbegin+rend反向(只读)迭代器 💦string类中迭代器在算法上的应用 ✨【reverse】函数 ✨【sort】函数五、共勉 一、前言 在C++中,标准模板库(StandardTemplateLibrary,STL)是一
目录1,insert2,erase3,find4,replace5,rfind6,substr7,find_first_of8,find_first_not_of9,find_last_of10,operator+11,getline1,insert在pos位置之前插入字符串#include#includeusingnamespacestd;intmain(){ strings1("helloworld"); s1.insert(0,"xx"); cout2,erase擦除范围字符串intmain(){ strings1("helloworld"); s1.erase(5,4); cout3,
本专栏内容为:C++学习专栏,分为初阶和进阶两部分。通过本专栏的深入学习,你可以了解并掌握C++。💓博主csdn个人主页:小小unicorn⏩专栏分类:C++🚚代码仓库:小小unicorn的代码仓库🚚🌹🌹🌹关注我带你学习编程知识STL详解(五)list的介绍定义方式:迭代器相关函数:begin与endrbegin与rend修改相关:push_frontpop_frontpush_backpop_backinserteraseresizeclear与sizeslist操作相关:sortspliceremoveremove_ifuniquemergereviseassginswaplist的介绍1
>作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等>座右铭:松树千年终是朽,槿花一日自为荣。>目标:了解c++中的STL库>毒鸡汤:路难行,行路难,-身汗水,满心长。脚下百里路,头顶艳阳天。坚定如磐石,信念似火烧。>望小伙伴们点赞👍收藏✨加关注哟💕💕 🌟前言咱们今天很轻松,咱们讲讲故事,大家拿好小板凳。😘😘😘 ⭐什么是STL概念:STL(standardtemplatelibaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。也就是说,咱们前面数据结构都可以库,顺序表,单链表,栈,队列....都可以调
目录 算术仿函数关系仿函数 逻辑仿函数 C++标准库中提供了一些内置的函数对象,也称为仿函数,它们通常位于头文件中。以下是一些常见的系统内置仿函数: 算术仿函数功能描述:实现四则运算其中negate是一元运算,其他都是二元运算仿函数原型:templateTplus//加法仿函数templateTminus//减法仿函数templateTmultiplies//乘法仿函数templateTdivides//除法仿函数templateTmodulus//取模仿函数templateTnegate//取反仿函数#include#includeusingnamespacestd;intm
目录1.next_permutation函数的定义2.简单使用2.1普通数组全排列 2.2结构体全排列2.3string3.补充1.next_permutation函数的定义next_permutation函数会按照字母表顺序生成给定序列的下一个较大的排列,直到整个序列为降序为止。与其相对的还有一个函数——prev_permutation函数。next_permutaion(起始地址,末尾地址+1)next_permutaion(起始地址,末尾地址+1,自定义排序)注:next_permutation只能获得上一个排列,如果要获得全排列,那么就需要先对数组进行升序排序2.简单使用2.1普通数组
本篇博客仅仅实现存储字符(串)的string同时由于C++string库设计的不合理,我仅实现一些最常见的增删查改接口接下来给出的接口都是基于以下框架:private: char*_str;//思考如何不用const size_t_size; size_t_capacity; //这样写可以 conststaticsize_tstring::npos=-1; //下面这种写法也可以->和上述写法产生矛盾 conststaticsize_tstring::npos; }; //静态变量只能在类外面定义上述两种定义容易产生矛盾📚1.string默认构造|析构函数|拷贝构造|赋值重载/
@TOC目录关联式容器树形结构与哈希结构键值对setset的定义方式set的使用multisetmapmap的介绍map的定义方式map的插入insert函数的参数insert函数的返回值map的查找map的删除map的[]运算符重载map的迭代器遍历map的其他成员函数multimap关联式容器C++STL包含了序列式容器和关联式容器:序列式容器里面存储的是元素本身,其底层为线性序列的数据结构。比如:vector,list,deque,forward_list(C++11)等。关联式容器里面存储的是结构的键值对,在数据检索时比序列式容器效率更高。比如:set、map、unordered_se
红黑树里面具体存的是什么类型的元素,是由模板参数T来决定:如果T是Key那么就是set。如果T是pair,那么就是map。1、定义红黑树的节点结构//定义红黑颜色enumColour{ RED, BLACK};templatestructRBTreeNode{ RBTreeNode*_left; RBTreeNode*_right; RBTreeNode*_parent;T_data;//数据域 Colour_col;//用来标记节点颜色 RBTreeNode(constT&data)//构造函数 :_left(nullptr) ,_right(nullptr) ,_parent(nul