STL映射容器map

简介:map是key-value构成的集合 。key必须唯一。

特点:一对多映射,基于关键字快速查找,不允许重复值 

  • 主要用来查找key对应value,要求key必须是可排序的,必须支持<比较运算符。
  • map默认是以key升序存放键值对<key,value>数据,比较适合二分查找。
#include<iostream>
#include<map>
using namespace std;

int main(){
	//1.定义: 
	map<string,string> dict;
	
	//2.赋值: 
	//dict[key] = value
	dict["apple"] = "苹果"; 
	dict["orange"] = "橘子";
	dict["banana"] = "香蕉";
	
	string s;
	cin >> s;
	cout << dict[s] << endl; //输出s英文字符串对应的中文字符串
	
	//3.遍历: 
	//迭代器 
	map<string,string>::iterator it = dict.begin();
	while(it!=dict.end()) {
		cout << it->first << "," << it->second << endl;
	    //       key                 value
	    ++it;
	}
	//pair类模板 
	for(pair<string,string> p:dict){
		cout << p.first << "," << p.second << endl;
	} 
	
	//4.元素删除:
	dict.erase("apple"); 
	for(pair<string,string> p:dict){
		cout << p.first << "," << p.second << endl;
	} 
	
	//5.查找(与set相同)
	cout << (dict.count("apple") == 1) << endl;
	cout << (dict.find("apple") != dict.end()) << endl;
	
	//6.添加新数据:
	dict["orange"] = "橙子";//原橘子变成橙子
	//[]添加数据
	//(1)如果存在,更新数据
	//(2)如果不存在,并且value没有赋值,添加默认值(0)
	dict.insert(pair<string,string>("grape","葡萄"));
	dict.insert(make_pair("cat","猫"));
	dict.insert({"dog","狗"});//C++11
	dict.insert({"dog","犬"});//C++11 原狗还是狗,不能变为犬 
	//insert添加数据,如果key已经存在,则不会插入数据 
}

面试题 16.02. 单词频率 - 力扣(LeetCode) (leetcode-cn.com)

205. 同构字符串 - 力扣(LeetCode) (leetcode-cn.com)

383. 赎金信 - 力扣(LeetCode) (leetcode-cn.com)

49. 字母异位词分组 - 力扣(LeetCode) (leetcode-cn.com) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值