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理解相关推荐

  1. STL详解(十)—— set、map、multiset、multimap的介绍及使用

    文章目录 关联式容器 树形结构与哈希结构 键值对 set set的介绍 set的定义方式 set的使用 multiset map map的介绍 map的定义方式 map的插入 map的查找 map的删 ...

  2. C++ map容器和multimap容器(STL map容器)

    目录 1. 关联容器和map容器概述 2. map容器 2.1 map的创建以及初始化列表 2.2 map容器的一般常用属性(方法) 2.3 插入数据 2.4 数据的访问和遍历 2.5 数据的删除 2 ...

  3. c++STL容器的Map和multimap

    STL容器的Map和multimap map/multimap的简介 map/multimap对象的默认构造 map的插入与迭代器 迭代器遍历 map对象的拷贝构造与赋值 map的大小 map的删除 ...

  4. 红黑树实现——STL中的map

    From: http://blog.csdn.net/zhongjiekangping/article/details/6934571 红黑树实现--STL中的map [ 2009-07-24 13: ...

  5. STL库:map和set

    STL库:map和set 文章目录 STL库:map和set 1.STL库中set的官方介绍 2.set的常用接口 3.set的总结 4.STL库中multiset的官方介绍 5.STL库中map的官 ...

  6. STL中的map、unordered_map、hash_map

    转自https://blog.csdn.net/liumou111/article/details/49252645 在之前使用STL时,经常混淆的几个数据结构,特别是做Leetcode的题目时,对于 ...

  7. c++STL容器的Set和multiset

    STL容器的Set和multiset set/multiset的简介 set的插入与迭代器 Set集合的元素排序 set对象的拷贝构造与赋值 set的大小 set的删除 set的查找 pair的使用 ...

  8. c++的STL中的map(哈希表)与unordered_map

    map: unordered_map: map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的 unordered_map:unordered_map内部实 ...

  9. 标准模板库(STL)之 map 列传 (二)

    标准模板库(STL)之 map 列传 map 容器的遍历 修改 key or value 实用的成员函数 下标 vs at map 容器的遍历 使用 range-based for 循环访问 map ...

最新文章

  1. Jmeter连接Oracle数据库
  2. Object Builder Application Block (2)
  3. 【产品干货】Uber产品经理首次在中国自述产品理念:我们看中的并非只是钱
  4. python 下标越界_Python中异常处理
  5. iOS 音频视频图像合成那点事
  6. FinCEN就非托管加密钱包报告规则征集意见时间将截至今日12时59分
  7. 将日期变为中文星期几
  8. PHP获取当前页面的完整URL
  9. SDN基本概念和Overlay技术
  10. VJC案例-查找最大值
  11. Flutter 2.5正式版发布,带来重大更新
  12. 论文阅读笔记:A brief introduction to weakly supervised learning
  13. BOOST升压有源功率因数校正
  14. 天才小毒妃 第945章 龙非夜心情很不好
  15. ARM嵌入式体系结构与接口技术
  16. javapoet的认识
  17. python获取发送到手机的短信,使用python将短信更新发送到手机
  18. Unity 数学基础
  19. js判断IE浏览器(包括IE11)
  20. 华为2020软件精英挑战赛成渝赛区初赛赛后方案分享

热门文章

  1. 2023美国大学生数学建模竞赛(美赛)思路代码
  2. 关于Precision, Accuracy, F1, Micro-Ave, Macro-Ave
  3. MyISAM 存储引擎(mysql 8.0)
  4. n3160装微软服务器,英特尔赛扬N3160处理器性能跑分评测
  5. 缺陷跟踪管理工具-Mantis BugFree Bugzilla
  6. 北京大学百年讲堂内听果宁法师讲人生——提得起、放得下的深刻含义(摘抄)
  7. python爬b站评论_一个简单的爬取b站up下所有视频的所有评论信息的爬虫
  8. c语言调试时出现的三种错误,C语言课件 第十四章 常见错误和程序调试
  9. 华为交换机运行过多设备会导致内存不足解决方法
  10. win10任务栏,如何做到图标居中