STL之set map 和multiset multimap理解
1.set multiset底层及区别?
都是由二叉搜索树(红黑树实现),不同在于multiset允许键值冗余。
2.map 和 multimap底层及区别?
都是由红黑树实现,不同在于multimap允许键值冗余
3.set和map的区别?
set是<key, key>
map是<key, value>
4.map的[]运算符重载是怎样的?
逻辑分三步
第一步 调用insert函数插入键值对
第二步 拿出insert返回的迭代器
第三步 从拿到的迭代器中取到value值
函数原型
mapped_type& operator[] (const key_type& k);
函数返回值
(*(this->make_pair(k, mapped_type())).first)).second
具体代码
mappd_type& operator[] (const key_type& k)
{
pair<iterator, bool> ret = insert(make_pair(k, mapped_type()));
第一步 调用insert函数插入键值对
第二步 拿出insert返回的迭代器
itertor it = ret.first;
第三步 从拿到的迭代器中取到value值
return it->second;
}
5.什么时候用“.” 什么时候用“->”?
A a;
A* p = &a
是类的对象指针或者结构体指针使用-> p->_years
而.的使用包含了-> , (**P).set( ) 一个
简单地认为“->”的左边是一个指针过于简单了。这个符号是用来代替*和.的合成,因为一般情况下通过“指针”访问结构体或对象成员,是“先求值,再取分量”,即上述的(*p).set( ),因为用两个符号过于麻烦,所以才使用“->”来代替,这样直观、简单得多。
6.map的插入函数原型以及使用代码?
函数原型
pair<iterator,bool> insert (const value_type& val); value_type就是pair类型
方式一:调用pair的构造函数,构造一个匿名对象插入
map<int, string> m;
m.insert(pair<int, sting>(2,“two”));
方式二调用make_pair函数模板插入
template <class T1, class T2>
pair<T1, T2> make_pair(T1 X, T2 Y)
{
return (pair<T1, T2>(X, Y));
}
m.insert(make_pair(2, “two”));
STL之set map 和multiset multimap理解相关推荐
- STL详解(十)—— set、map、multiset、multimap的介绍及使用
文章目录 关联式容器 树形结构与哈希结构 键值对 set set的介绍 set的定义方式 set的使用 multiset map map的介绍 map的定义方式 map的插入 map的查找 map的删 ...
- C++ map容器和multimap容器(STL map容器)
目录 1. 关联容器和map容器概述 2. map容器 2.1 map的创建以及初始化列表 2.2 map容器的一般常用属性(方法) 2.3 插入数据 2.4 数据的访问和遍历 2.5 数据的删除 2 ...
- c++STL容器的Map和multimap
STL容器的Map和multimap map/multimap的简介 map/multimap对象的默认构造 map的插入与迭代器 迭代器遍历 map对象的拷贝构造与赋值 map的大小 map的删除 ...
- 红黑树实现——STL中的map
From: http://blog.csdn.net/zhongjiekangping/article/details/6934571 红黑树实现--STL中的map [ 2009-07-24 13: ...
- STL库:map和set
STL库:map和set 文章目录 STL库:map和set 1.STL库中set的官方介绍 2.set的常用接口 3.set的总结 4.STL库中multiset的官方介绍 5.STL库中map的官 ...
- STL中的map、unordered_map、hash_map
转自https://blog.csdn.net/liumou111/article/details/49252645 在之前使用STL时,经常混淆的几个数据结构,特别是做Leetcode的题目时,对于 ...
- c++STL容器的Set和multiset
STL容器的Set和multiset set/multiset的简介 set的插入与迭代器 Set集合的元素排序 set对象的拷贝构造与赋值 set的大小 set的删除 set的查找 pair的使用 ...
- c++的STL中的map(哈希表)与unordered_map
map: unordered_map: map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的 unordered_map:unordered_map内部实 ...
- 标准模板库(STL)之 map 列传 (二)
标准模板库(STL)之 map 列传 map 容器的遍历 修改 key or value 实用的成员函数 下标 vs at map 容器的遍历 使用 range-based for 循环访问 map ...
最新文章
- Jmeter连接Oracle数据库
- Object Builder Application Block (2)
- 【产品干货】Uber产品经理首次在中国自述产品理念:我们看中的并非只是钱
- python 下标越界_Python中异常处理
- iOS 音频视频图像合成那点事
- FinCEN就非托管加密钱包报告规则征集意见时间将截至今日12时59分
- 将日期变为中文星期几
- PHP获取当前页面的完整URL
- SDN基本概念和Overlay技术
- VJC案例-查找最大值
- Flutter 2.5正式版发布,带来重大更新
- 论文阅读笔记:A brief introduction to weakly supervised learning
- BOOST升压有源功率因数校正
- 天才小毒妃 第945章 龙非夜心情很不好
- ARM嵌入式体系结构与接口技术
- javapoet的认识
- python获取发送到手机的短信,使用python将短信更新发送到手机
- Unity 数学基础
- js判断IE浏览器(包括IE11)
- 华为2020软件精英挑战赛成渝赛区初赛赛后方案分享
热门文章
- 2023美国大学生数学建模竞赛(美赛)思路代码
- 关于Precision, Accuracy, F1, Micro-Ave, Macro-Ave
- MyISAM 存储引擎(mysql 8.0)
- n3160装微软服务器,英特尔赛扬N3160处理器性能跑分评测
- 缺陷跟踪管理工具-Mantis BugFree Bugzilla
- 北京大学百年讲堂内听果宁法师讲人生——提得起、放得下的深刻含义(摘抄)
- python爬b站评论_一个简单的爬取b站up下所有视频的所有评论信息的爬虫
- c语言调试时出现的三种错误,C语言课件 第十四章 常见错误和程序调试
- 华为交换机运行过多设备会导致内存不足解决方法
- win10任务栏,如何做到图标居中