-
定义
1、map是STL的一个关联容器;
2、map提供一对一的数据处理,key-value键值对,其类型可以自己定义,第一个称为关键字,第二个为关键字的值,每个关键字只能在map中出现一次,可以修改value,而不能修改key,key 和 value可以是任意你需要的类型;
3、map内部是自动排序的,红黑树实现;
4、根据key值快速查找记录,查找的复杂度基本是Log(N); -
用法
- 创建
map<type1name,type2name> maps;//第一个是键的类型,第二个是值的类型map<string,int> maps;
- 初始化
1、直接赋值
2、用insert添加pair类型的元素map[key]=value;
map<string, int> m2; m2.insert({ string("abc"), 1 }); m2.insert(make_pair(string("defg"), 2)); m2.insert(pair<string, int>(string("hijk"), 3)); m2.insert(map<int, string>::value_type(222, "pp"));
- 数据遍历
1、应用前向迭代器
2、应用反相迭代器map<int, string>::iterator iter; for(iter = Test.begin(); iter != Test.end(); iter++) { cout<<iter->first<<" "<<iter->second<<endl; }
map<int, string>::reverse_iterator iter; for(iter = Test.rbegin(); iter != Test.rend(); iter++) { cout<<iter->first<<" "<<iter->second<<endl; }
- map大小
int nSize = Test.size();
- 清除map
Test.clear();
- 判空
Test.empty();
- 删除部分元素
//迭代器刪除 it = Test.find("123"); Test.erase(it); //关键字删除 int n = Test.erase("123"); //如果刪除了返回1,否则返回0 //用迭代器范围刪除 : 把整个map清空 Test.erase(maps.begin(), maps.end()); //等同于Test.clear()
- find() 查找一个元素
find返回的一个迭代器,当数据出现时,它返回数据所在位置的迭代器,如果map中没有要查找的数据,它返回的迭代器等于end函数返回的迭代器map<string,int>::iterator it; it=maps.find("123");
- 创建
C++ map
最新推荐文章于 2023-04-25 11:32:55 发布
本文介绍了STL容器map的基础概念,包括一对一映射、数据类型自定义、红黑树排序及其实现。讲解了如何创建、初始化、遍历和操作map,以及find方法的使用。重点展示了map在数据处理中的便捷性和查找效率。
摘要由CSDN通过智能技术生成