C++ STL map 的简单使用例
有时候做OJ,尤其是图的题目,会有要求用字符串表示顶点的,他的输入的顶点信息也是字符串,可是对于邻接矩阵或者邻接表,我们希望把顶点信息转化成数字,这样方便使用数组进行处理
一般我们是写一个函数顺序查找整个输入字符串数组,然后找到相同的下标,比较繁琐,而且复杂度是O(N) ,如果用map,人家底层是红黑树,达到时间复杂度O(log(N))
STL 的 map 提供了一种比较方便的,将 ‘键’ 与 “值” 一一对应的方式
map的使用有点像数组,只不过它的下标可以是任何东西,不限于数字(和Python里的 dictionary 类似)
这是好特性 ,只要预先建立了映射关系,我们可以直接使用字符串去访问数字了
自定义一个由字符串映射到数字的map的步骤
- 创建map类,指定数据类型
- 为map中加入对应映射关系的元素对
查询map
直接像数组一样用 “下标”
map<string,