1.铺垫
1.1map和unorder_map,两者的实现思想不同,但是用法是相同的;map的思想是平衡二叉树;unorder_map的思想是哈希;
1.2在现实及做题中,百分之99,都在使用unorder_map,接下来的讲解,以map做替代;
1.3map的K-V键值对的Key值是唯一的,不可重复的;multimap容器是允许Key值重复的;
1.4本文章内容来自官网;若有需要请直接访问官网:cplusplus.com - The C++ Resources Network
2.operator[]
解释:此函数用来查找map中的K-V键值对;若找到Key值,则返回对应的Value值;若未找到Key值,则会在map容器中,新插入一对K-V键值对,Key是operator[]中的值,且默认value=0(VS编译器中);
也可以直接使用operator[]对value值进行操作;
3.find()
在map容器中,寻找以Key为键的元素,若找到了,则返回当前元素的迭代器,若未找到,则返回unorde_map::end;
4.count()
在map容器中,寻找以Key为键的元素,若找到了,返回1,若未找到,返回0;
注:此2、3、4,返回值的不同;表明了用法的不同;我在做力扣题时,经常混用operator[];把此函数,用成了查找函数;找到了并无大碍;找不到就会新增节点,错的一塌糊度;
力扣第一题,使用哈希表算法优化;
两数之和https://leetcode.cn/problems/two-sum/