C++中map的用法

C++中map的用法

       begin()  返回指向map头部的迭代器

  clear()  删除所有元素

  count()  返回指定元素出现的次数

  empty()  如果map为空则返回true

  end()  返回指向map末尾的迭代器

  equal_range()  返回特殊条目的迭代器对

  erase()  删除一个元素

  find()  查找一个元素

  insert()  插入元素

  max_size()  返回可以容纳的最大元素个数

  size()  返回map中元素的个数

  swap()  交换两个map

  get_allocator()  返回map的配置器

  key_comp()       返回比较元素key的函数

  lower_bound()    返回键值>=给定元素的第一个位置

  max_size()       返回可以容纳的最大元素个数

  rbegin()         返回一个指向map尾部的逆向迭代器

  rend()           返回一个指向map头部的逆向迭代器

  upper_bound()     返回键值>给定元素的第一个位置

  value_comp()      返回比较元素value的函数


变量声明

map<string, string> mapStudent

 插入元素

    //用insert函數插入pair
    mapStudent.insert(pair<string, string>("student_first", "xiaoMing"));
 
    //用"array"方式插入
    mapStudent["student_second"] = "xiaoHua";
    mapStudent["student_third"] = "third";

查找元素

//用count函数来判定关键字是否出现,其缺点是无法定位!,由于map的特性:一对一的映射关系,
	//就决定了count函数的返回值只有两个,要么是0,要么是1
		if (mapStudent.count("student_first")) {
			cout << mapStudent.count("student_first") << endl;
		 }
	
	//用find函数来定位数据出现的位置,它返回一个迭代器
    map<string, string>::iterator it;
	it = mapStudent.find("student_second");
	if (it!=mapStudent.end()) {
		cout << "要找的元素为"<<(*it).second<<endl;
	}
	else {
		cout << "没有找到" << endl;
	}

删除与清空

//如果要删除student_third,用迭代器删除
	   it = mapStudent.find("student_third");
	   mapStudent.erase(it);
	   //遍历元素
	   map<string, string>::iterator itl;
	   for (itl = mapStudent.begin(); itl != mapStudent.end(); itl++) {
		   cout << (*itl).second;
	   }
	   cout << endl;
	   //如果要删除student_second,用关键字删除
	   int n = mapStudent.erase("student_second");
	   for (it = mapStudent.begin(); it != mapStudent.end(); it++) {
		   cout << (*it).second;
	   }
	   cout << endl;

      //成片删除
	   mapStudent.erase(mapStudent.begin(),mapStudent.end());

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值