map和multimap容器的基本使用

map是STL的一个关联容器,它提供一对一的hash
Key-value:键值匹对
Map中key不可重复,value可重复
内部实现:红黑树

键值可以是自定义的数据
Map<type,type>名
map内部元素有序(根据key来堆大项)
插入方式:主分两种
Map<int,string>map1;
1.array式
map1[int]=string
map1[1]=”love”
2.pair式
Map1.insert(pair<int ,string>(1,”love”)
或者
pair<int,string>p;
cin>>p.first>>p.second;
map1.insert§;
两种方式存在区别:
array式当map中已经存在要插入元素的键,则在加入会覆盖原来的value
Pair式 则会插入不成功,当是系统不会报错,保持map原有元素,不会发生覆盖。(傻瓜式解释。。)
注意的是:
Map有内置函数find
参数是key
返回的是迭代器(所找到元素的)

#include<iostream>
#include<map>
#include<string>
#include<iterator>
using namespace std;
map<int,string>map1;
int n;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		pair<int,string>p;
		cin>>p.first>>p.second;
		map1.insert(p);
	}
	map<int,string>::iterator iter=map1.begin();
	for(iter;iter!=map1.end();iter++)
		cout<<iter->first<<" "<<iter->second<<endl;
	int a;
	cin>>a;
	if(map1.find(a)!=map1.end())cout<<"find";
	return 0;
}

Multimap:容器支持存在键重复的元素,所以就不支持索引的方式来添加元素了
此时当存在重复键时,对键用find函数时
缺点:容器中可能存在键值都相同的元素。
code:

#include<iostream>
#include<map>
#include<iterator>
using namespace std;
int n;
multimap<int,int>map1;
multimap<int,int>::iterator iter;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		pair<int,int>p;
		cin>>p.first>>p.second;
		map1.insert(p);
	}
	iter=map1.begin();
	for(iter;iter!=map1.end();iter++)
		cout<<iter->first<<" "<<iter->second<<endl;
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值