文章 2025-03-18 来自:开发者社区

【c++丨STL】基于红黑树模拟实现set和map(附源码)

前言 之前我们学习了红黑树以及STL中的set和map两种容器,本篇文章,基于之前实现的红黑树代码,我们将仿照SGI STL的实现方式,尝试对同一棵红黑树进行封装和一系列适配修改,模拟实现set和map两种容器。 建议大家掌握了红黑树以及set和map的使用之后,再来阅读本文,否则部分内容可能...

【c++丨STL】基于红黑树模拟实现set和map(附源码)
文章 2024-06-19 来自:开发者社区

【C++练级之路】【Lv.17】【STL】set类和map类的模拟实现

远方有一堆篝火,在为久候之人燃烧! @[TOC] 引言 STL库中的set类和map类,其底层原理都是==通过红黑树来实现==的。尽管set和map可以各自实现一棵红黑树,但是为了提高代码的复用率,STL库中将红黑树进行了一定的改造,实现==以相同的底层实现不同的容器==。 一、红黑树(改造版) 1.1 结点 enum Color { RED, BLACK...

【C++练级之路】【Lv.17】【STL】set类和map类的模拟实现
文章 2024-05-09 来自:开发者社区

C++:STL - set & map

关联式容器 关联式容器是C++标准库提供的一种数据结构,用于存储操作键值对(key-value)。每个键值对都包含一个键和一个关联的值。关联式容器提供了通过键快速查找和访问值的功能。 C++98标准库提供了四种树形结构的关联式容器:set、multiset、map和multimap。 set:set是一个无序集合,存储唯一的元素。内部实现使用红黑树,...

文章 2024-04-12 来自:开发者社区

【C++初阶】STL详解(十)set、map、multiset、multimap的介绍及使用

关联式容器 C++STL包含了序列式容器和关联式容器: 1.序列式容器里面存储的是元素本身,其底层为线性序列的数据结构。比如:vector,list,deque,forward_list(C++11)等。 2.关联式容器里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。比如:set、map、unordered_set、unor...

【C++初阶】STL详解(十)set、map、multiset、multimap的介绍及使用
文章 2023-11-24 来自:开发者社区

C++ STL中 set和map介绍以及使用方法

一、序列式容器和关联式容器1. 序列式容器在前面,我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。2. 关联式容器关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列....

C++ STL中 set和map介绍以及使用方法
文章 2023-02-07 来自:开发者社区

【C++】-- STL之用哈希桶模拟实现unordered_set和unordered_map(三)

五、完整代码段HashTable.h1. #pragma once 2. #include<vector> 3. #include<iostream> 4. using namespace std; 5. 6. namespace OpenHash 7. { 8. //哈希仿函数 9. template<class K> 10. struct Has...

【C++】-- STL之用哈希桶模拟实现unordered_set和unordered_map(三)
文章 2023-02-07 来自:开发者社区

【C++】-- STL之用哈希桶模拟实现unordered_set和unordered_map(二)

三、迭代器        迭代器需要前置声明HashTable,因为HashTable类中使用了__HTIterator迭代器,且__HTIterator中使用了HashTable类的指针,为什么要用指针呢?        因为C++编译器自上而下编译源文件的时候,对每一个数据的定义,需要知道定义的数据类型的大小。在....

【C++】-- STL之用哈希桶模拟实现unordered_set和unordered_map(二)
文章 2023-02-07 来自:开发者社区

【C++】-- STL之用哈希桶模拟实现unordered_set和unordered_map(一)

一、哈希桶节点的修改        用哈希桶封装实现unordered_set和unordered_map,就要考虑到他们传给哈系统的数据元素不同,unordered_set传给哈希桶的是k,unordered_map传给哈希桶的是pair,那么哈希桶面对这两种不同的数据,如何做到统一处理呢?         面对u....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注