我是靠谱客的博主 粗犷飞鸟,这篇文章主要介绍C++的Map常见用法总结,现在分享给大家,希望可以做个参考。

Map是STL的非常重要的关联容器,其底层由红黑树实现,是一种key+value的模式。

①头文件和定义:


#include <map>
typedef map<string, int> My_map;
//第一种定义方式:模板定义
My_map MMap;
//这两种定义方法均可
map<string, int> Map;
//第二种定义方式:直接定义

②迭代器和遍历:


map<string, int>::iterator map_it;
//定义一个迭代器
for (map_it = Map.begin(); map_it != Map.end(); map_it++) {}
//遍历map

③修改数据: insert();

	Map.insert({ "b",2 });
//使用这种插入的方式
Map.insert(map<string, int>::value_type("b", 2));
Map.insert(pair<string, int>("c", 3));
Map.insert(make_pair<string, int>("d", 4));
	int i = 0;
//修改值的写法
Map["a"] = i;
	map<string, int>::iterator map_ptr;
map_ptr=Map.find("b");
cout << map_ptr->second << endl;//迭代器指针里的first指的是key,second指的是value
map_ptr->second = 3;
//可以通过这种方式进行修改

④遍历: .begin()迭代器遍历

     迭代器在使用时一定注意,一定要使用的时候设迭代器,不要提前设好,如果在设置好迭代器之后再对原容器进行操作,迭代器就不能发挥效果了。

	map<string, int>::iterator map_it;
//定义一个迭代器
for (map_it = Map.begin(); map_it != Map.end(); map_it++) {}
//遍历map

 ⑤删除数据:erase()

auto iter = Map.begin();
//定义迭代器
iter=Map.erase(iter);
//这样即便删除了头,iter会自动返还头下一个位置的值,不会出现直接断裂的情况

 ⑥基础信息:

	Map.size();//得到尺寸,为key的尺寸
Map.empty(); //空为1,非空为0
Map.clear(); //清空所有数据







最后

以上就是粗犷飞鸟最近收集整理的关于C++的Map常见用法总结的全部内容,更多相关C++内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(125)

评论列表共有 0 条评论

立即
投稿
返回
顶部