stl::map使用小结。
连续两场比赛都被坑在map映射上,然后决定花点时间了解map,三日来看来一些资料,今天搜了些用map解的题,做个小结,谈谈对map的用法、感受、以及注意事项。
map是一种一红黑树为基础的映射,所以重载结构体(或者类)的‘<’即可在map内部完成排序。
map类似数组, 不过小标不再是 [i] , 而是一个关键字 key 如map<elem_key, elem_value>_m,elem_key 是关键字的类型, elem_value是关键字的映射,然后_m可以理解为一个数组,
使用时 可理解为 _m[key] = value。
和数组下标不能改变但是arr[i]中的内容可以改变一样, key一旦插如就不可改变, 但是value可以改变 。
插入一个关键字:
我了解到的插入方法, 也是个人认为比较好理解的方法 _m.insert(map<elem_key, elem_value>::value_type(key, value));//有用value可变,所以任意插入一个符合要求(对应的类型)的即可
找到一个关键字及他的映射:
声明一个迭代器,map<elem_keym elem_value>::iterator it;
it = _m.find(key); it->first为关键字key, it->second为关键字对应的映射。
用迭代器也可以实现对map的遍历:
for(it = _m.begin(); it!= _m.end(); ++it)
以上了解STL的基本原理, 应该都是很简单的,与菜鸟共勉!
连续两场比赛都被坑在map映射上,然后决定花点时间了解map,三日来看来一些资料,今天搜了些用map解的题,做个小结,谈谈对map的用法、感受、以及注意事项。
map是一种一红黑树为基础的映射,所以重载结构体(或者类)的‘<’即可在map内部完成排序。
map类似数组, 不过小标不再是 [i] , 而是一个关键字 key 如map<elem_key, elem_value>_m,elem_key 是关键字的类型, elem_value是关键字的映射,然后_m可以理解为一个数组,
使用时 可理解为 _m[key] = value。
和数组下标不能改变但是arr[i]中的内容可以改变一样, key一旦插如就不可改变, 但是value可以改变 。
插入一个关键字:
我了解到的插入方法, 也是个人认为比较好理解的方法 _m.insert(map<elem_key, elem_value>::value_type(key, value));//有用value可变,所以任意插入一个符合要求(对应的类型)的即可
找到一个关键字及他的映射:
声明一个迭代器,map<elem_keym elem_value>::iterator it;
it = _m.find(key); it->first为关键字key, it->second为关键字对应的映射。
用迭代器也可以实现对map的遍历:
for(it = _m.begin(); it!= _m.end(); ++it)
以上了解STL的基本原理, 应该都是很简单的,与菜鸟共勉!