map

1.声明方式:

map<int, string>mapStudent;
map<string, int>mapStudent;

2.数据的插入;

第一种: 使用insert函数插入pair数据;

map<int, string>mapStudent;
mapstudent.insert(pair<int, string>(1, "student_one"));

第二种: 使用insert函数插入value_type数据

map<int, string>mapStudent;
mapstudent.insert(map<int, string>::value_type(1, "student_one"));

第三种:用数组方式插入数据

map<int, string>mapStudent;
mapStudent[1] = "student_one";
mapStudent[2] = "student_two";

以上三种方法,虽然都可以实现数据的插入,但是他们是有区别的,第一种和第二种在效果上是完全一样的,用Insert函数插入数据,在数据的插入上涉及到集合的唯一性这个概念,及当map中有这个关键字时,insert操作是不能再插入这个数据的,但是用数组方式就不同了,它可以覆盖以前该关键字对应的值。

3.map的大小

size()函数;来检测插入多少数据。

4.数据的查找:

第一种:使用count函数来判定关键字是否出现,但是无法定位数据出现位置。

第二种:用find函数来定位数据出现的位置,它返回的一个迭代器,当数据出现时,他返回数据所在位置的迭代器,如果map中没有要查找的数据,他返回的迭代器等于end函数的迭代器。

第三种:这个方法用来判定数据是否出现

lower_bound()函数用来返回要查找关键字的下届(是一个迭代器)
upper_bound()函数用来返回要查找关键字的上届(是一个迭代器) 
equal_range()函数用来返回一个pair,pair里面第一个变量是lower_bound返回的迭代器,
第二个变量是upper_bound返回的迭代器,如果这两个迭代器相同的话,则说明map中不
出现这个关键字
mapPair = mapStudent.equal_range(2);
if(mapPair.first == mapPair.second){
	cout << "Don't find" << endl; 
} 

  5. 数据的清空与判定

清空map中的数据可以用clear()函数,判定map中是否有数据可以使用empty()函数,他返回true则说明是空。

6.数据的删除

这里使用erase函数,他有三个重载了的函数。迭代器删除

iter = mapStudent.find(1); 
mapStudent.erase(iter);

 用关键字删除

int n = mapStudent.erase(1); //如果删除返回1, 否则为0;

用迭代器,成片的删除

一个代码把整个map清空

mapStudent(mapStrdent.begin(), mapStudent.end()); //删除区间是一个左闭右开区间。

7.其他一些函数

swap, key_comp, value_comp, get_allocator.

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值