首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【C++】map & set

(1)map 的介绍 我们先看一下 map 的文档介绍:map 文档介绍 ....map 中通过键值访问单个元素的速度通常比 unordered_map 容器慢,但 map 允许根据顺序对元素进行直接迭代(即对map中的元素进行迭代时,可以得到一个有序的序列)。...map 支持下标访问符,即在 [] 中放入 key,就可以找到与 key 对应的 value。 map 通常被实现为二叉搜索树(更准确的说:平衡二叉搜索树(红黑树))。...总结: map 中的的元素是键值对 map 中的 key 是唯一的,并且不能修改 默认按照小于的方式对 key 进行比较 map 中的元素如果用迭代器去遍历,可以得到一个有序的序列 map 的底层为平衡搜索树...使用时与map包含的头文件相同: 四、map 和 set 的练习 1.

12910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C++学习篇】map和set (map篇)

    1.map系列的使用 map分为map和multimap 1.1map和multimap参考文档 参考文档 https://legacy.cplusplus.com/reference/map/ 1.2map...而本期讲的map,是key/value搜索场景。...map的声明如下,Key就是map底层关键字的类型,T是map底层value的类型(key/value),map默认要求Key⽀持⼩于⽐较,如果不⽀持或者需要的话可以⾃⾏实现仿函数传给第三个模版参数,map...1.4map的构造 map的⽀持正向和反向迭代遍历,遍历默认按key的升序顺序,因为底层是⼆叉搜索树,迭代器遍历⾛的中序;⽀持迭代器就意味着⽀持范围for,map⽀持修改value数据,不⽀持修改key...1.5 map的增删查 map的增删查关注以下⼏个接⼝即可: map增接⼝,插⼊的pair键值对数据,跟set所有不同,但是查和删的接⼝只⽤关键字key跟set是完全类似的,不过find返回iterator

    9210

    map 学习(下)——C++ 中的 hash_map, unordered_map

    map 学习(下)——C++ 中的 hash_map, unordered_map 接上篇《map 学习(一)——C++中 map 的使用》。...一、hash_map 参考《C++ STL中哈希表 hash_map介绍》即可。博主写的很详细。 注: hash_map 不是标准的。...网上原因好像说是 STL 加入标准C++之时,hash_map系列当时还没有完全实现,所以很多平台上虽然安装了 g++ 编译器,但不一定有 hash_map 的实现。...所以如果有平台移植的内容,尽量少用 hash_map。 二、unordered_map 以下内容翻译自《unordered_map - C++ Reference》。 1....三、map, hash_map, unordered_map 的区别 参考网址: 《c++中map与unordered_map的区别》 《C++中map和hash_map的区别》 1.

    13.5K91

    C++之map和set

    map的介绍 map是关联式容器,他按照特定的次序(按照key来比较)存储由键值key和值value组合而成的键值对元素; 在map中,键值key可以唯一的标识元素,值value中存储与键值key关联的内容...key来进行比较排序; map中通过键值访问单个元素的效率通常比unordered_map的效率低,但是map允许根据顺序对元素进行直接迭代(对map的元素进行迭代,可以得到一个有序的序列); map支持下标访问...map的构造 map的迭代器 map的容量 map的元素访问 map的操作 大部分操作与set类似,参考set的使用即可。...map的应用举例 #includemap> #include int main() { map m; m.insert(make_pair("peach...本文作者目前也是正在学习C++相关的知识,如果文章中的内容有错误或者不严谨的部分,欢迎大家在评论区指出,也欢迎大家在评论区提问、交流。

    75330

    c++ map和set_STLset和map的区别

    C++map和set的介绍及使用 零、前言 一、关联式容器 二、键值对 三、C++中的set 1、set的介绍 2、set的使用 四、C++中的multiset 五、C++中的map 1、map的介绍...2、map的使用 六、C++中的multimap 零、前言 本章主要讲解C++中的一个关联式容器map和set的介绍及其使用 一、关联式容器 容器分类: 序列式容器:初阶阶段中学习过STL中的部分容器...first(T1()), second(T2()) { } pair(const T1& a, const T2& b): first(a), second(b) { } }; 三、C+...) << endl; set.erase(set.find(8));//删除 for (auto& e : set) cout << e << " "; cout << endl; } 结果: 四、C+.../遍历 cout << e.first << ":" << e.second << endl; } 结果: 六、C++中的multimap multimap的介绍: multimap容器与map容器的底层实现以及成员函数的接口都是基本一致

    42220

    C++ map内部算法1

    相比而言,map 容器提供了一种更有效的存储和访问数据的方法。 map 容器是关联容器的一种。在关联容器中,对象的位置取决于和它关联的键的值。键可以是基本类型,也可以是类类型。...map 类模板定义在 map 文件头中,它定义了一个保存 T 类型对象的 map,每个 T 类型的对象都有一个关联的 K 类型的键。容器内对象的位置是通过比较键决定的。...可以用适当的键值从 map 容器中检索对象。图 1 展示了一个用名称作为键的 map 容器,对象是整数值,用来表示年龄。 ?...不要因为 map 使用 less 对元素排序就被误导,这些元素并没有被组织成一个简单的有序序列,STL map 容器对元素的组织方式并没有具体要求,但元素一般都会保存在一个平衡二叉树中。...图 2 展示了图 1 所表示的 map 容器可能的平衡二叉树。 ? 图 2 map 容器的内部组织图 图 2 所示的树有 3 层,所以从根节点开始,找到任意的元素最多需要 3 步。

    1.1K10

    C++ map用法总结(整理)

    1,map简介 map是STL的一个关联容器,它提供一对一的hash。...3,使用map 使用map得包含map类所在的头文件 #include map> //注意,STL头文件没有扩展名.h map对象是模板类,需要关键字和存储对象两个模板参数: std:map<int...为了使用方便,可以对模板类进行一下类型定义, typedef map UDT_MAP_INT_CSTRING; UDT_MAP_INT_CSTRING enumMap; 4,map...的构造函数 map共提供了6个构造函数,这块涉及到内存分配器这些东西,略过不表,在下面我们将接触到一些map的构造方法,这里要说下的就是,我们通常用如下方法构造一个map: map<int, string...,我们怎么知道当前已经插入了多少数据呢,可以用size函数,用法如下: int nSize = mapStudent.size(); 9,map的基本操作函数: C++ maps是一种关联式容器

    6.4K20

    【C++】map和set的封装

    一、前情回顾 set 参数只有 key,但是map除了key还有value。...和Set: 对于map:传key,对于set:传pair map的结构简化源码: set的结构简化源码: 为了让我们的红黑树能够识别set与map我们增加一个模板参数T: templatemap的区别:我们只要通过第二个模板参数就能进行区分,那是不是第一个模板参数就没有意义了呢?...**红黑树的节点**:set容器:K和T都是键值Key; map容器:K是键值Key,T由Key和Value构成的键值对;但是底层红黑树并不知道上层容器到底是map还是set,因此红黑树的结点当中直接存储...map还是set容器,当需要进行两个结点键值的比较时,底层红黑树传入的仿函数来获取键值Key,进行两个结点键值的比较:这个时候我们就需要仿函数了,如果是set那就是用于返回T当中的键值Key,如果是map

    16320
    领券