- 定义 1、map是STL的一个关联容器;
2、map提供一对一的数据处理,key-value键值对,其类型可以自己定义,第一个称为关键字,第二个为关键字的值,每个关键字只能在map中出现一次,可以修改value,而不能修改key,key 和 value可以是任意你需要的类型;
3、map内部是自动排序的,红黑树实现;
4、根据key值快速查找记录,查找的复杂度基本是Log(N); - 用法
- 创建
mapmaps;//第一个是键的类型,第二个是值的类型 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");
- 创建
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)