1.map简介:

map是STL的一个关联容器,它提供一对一的hash

  • 第一个可以称为关键字(key),每个关键字只能在map中出现一次;
  • 第二个可能称为该关键字的值(value)
  • 所有元素会根据键值来自动排序

multimap和map的区别:

    map不允许有重复的键值

    multimap允许重复键值存在

map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map内部所有的数据都是有序的,后边我们会见识到有序的好处。比如一个班级中,每个学生的学号跟他的姓名就存在著一对一映射的关系。

2,map的功能

自动建立key - value的对应。key 和 value可以是任意你需要的类型,包括自定义类型。

3.map的基础用法

	map<int, string>s;//定义 
	map<vector<int>, int>h;
	int n, m;
	cin >> n;
	for (int i = 0; i <= n; i++)
	{
		string a;
		cin >> a;
		s.insert({ i,a });//元素的插入两种方法	
		//s[i]=a; s[i]输入能够实现元素覆盖 
	}
	//遍历 
		// 方式一、range for C++ 11版本及以上
	for (auto& v : s)
	{
		cout << v.first << " " << v.second << endl;
	}
		//方式二、迭代器
	for (auto v = s.begin(); v != s.end(); v++)
	{
		cout << v->first << " " << v->second << endl;
	}
	//map里面是否含有这个元素 
	if (s.find(1) != s.end())
	{
		cout << s[1];
	}

4.其他功能:

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐