unordered_map与map的区别

unordered_map与map的区别

在解决一些整数与整数对应的问题时,用离散化这样算法非常好,但是离散化不好写,所以map就成为了编程中不可或缺的一部分。map的优点是省代码、省键盘、省脑子,但是缺点是存储慢、调用慢、AC慢,所以当考试还剩下30分钟左右的时候,人们就会十分纠结:是写离散化还是写map呢?

离散化虽然运行得常数小,只需要预处理一下就可以O1使用,但是写不完,写完了也容易直接爆0,况且如果是对于字符串进行操作,还需要带一个hash,直接把OI player气死。

map肯定能写完,但是上去之后可能会由于Time Limit Error而获得0分的好成绩,直接闹死。

所以我们隆重请出我们今天的一号嘉宾:

unordered_map

他的功能和map基本一致,但是map在核心存储部分是把输入的key(不知道是啥网上搜“map基本用法”)排序并与value一一对应,而我们的一号嘉宾则是个大懒蛋,从来不给排序,所以他的读取代价是O1的,存储代价也是很小的。

单词不要担心背不下来:

order:顺序(参见in order、out of order)。

加上ed变成ordered,是order的过去式、过去分词、形容词,译为排序的。

un否定前缀所以unordered表示“不排序的”。

你可能感兴趣的:(map,unordered_map,c++,STL库)