C++ map用法总结

1,map简介
 map,简而言之,就是一种k-v结构,和Python中的dict差不多。

2,map的功能
 自动建立key - value的对应。key 和 value可以是任意你需要的类型。

3,使用map
 使用map得包含map类所在的头文件

#include <map>    //注意,STL头文件没有扩展名.h

4,定义map
 map对象是模板类,需要关键字和存储对象两个模板参数:

// 定义了一个用int作为索引,并拥有相关联的指向string的指针
std:map<int, string> personnel;   
//为了使用方便,可以对模板类进行一下类型定义,
typedef map<int, string> UDT_MAP_INT_STRING;
UDT_MAP_INT_STRING enumMap;

5,插入元素

map<int, string> mapStudent;      // 定义一个map对象
mapStudent.emplace(000, "student_zero");     //推荐 用emplace,比insert要好。

6, 查找元素
 当所查找的关键key出现时,它返回数据所在对象的位置,如果沒有,返回iter与end函数的值相同。

// find 返回迭代器指向当前查找元素的位置否则返回map::end()位置
iter = mapStudent.find("123");
if(iter != mapStudent.end())
       cout<<"Find, the value is"<<iter->second<<endl;
else
   cout<<"Do not Find"<<endl;

7, 刪除与清空元素

//迭代器刪除
iter = mapStudent.find("123");
mapStudent.erase(iter);
 //用关键字刪除
int n = mapStudent.erase("123"); //如果刪除了會返回1,否則返回0
//用迭代器范围刪除 : 把整个map清空
mapStudent.erase(mapStudent.begin(), mapStudent.end());
//等同于mapStudent.clear()

8,map的大小

int student_size = mapStudent.size();

9,map的基本操作函数:

 begin()         返回指向map头部的迭代器
 clear()        删除所有元素
 count()         返回指定元素出现的次数
 empty()         如果map为空则返回true
 end()           返回指向map末尾的迭代器
 erase()         删除一个元素
 find()          查找一个元素
 emplace()        插入元素
 max_size()      返回可以容纳的最大元素个数
 size()          返回map中元素的个数
 swap()           交换两个map
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值