C++之map

map是一种关联式容器,包含“关键字/值”对

#include <map>
#include <string>
#include <iostream>

using namespace std;

int main()
{
	map<int, string> mapStudent;

	//map插入数据
	mapStudent.insert(pair<int, string>(1, "student_one"));
	mapStudent.insert(pair<int, string>(2, "student_two"));
	mapStudent.insert(pair<int, string>(3, "student_three"));
	mapStudent.insert(map<int, string>::value_type(4, "student_four"));
	mapStudent[5] = "student_five";

	//用前向迭代器遍历map
	map<int, string>::iterator iter;
	for (iter=mapStudent.begin();iter!=mapStudent.end();iter++)
	{
		cout << iter->first << ' ' << iter->second << endl;
	}
	//用反向迭代器遍历map
	map<int, string>::reverse_iterator iter1;
	for (iter1=mapStudent.rbegin();iter1 != mapStudent.rend();iter1++)
	{
		cout << iter1->first << " " << iter1->second << endl;
	}
	//用数组遍历map
	int size = mapStudent.size();//mao的大小
	for (int index=0;index<=size;index++)
	{
		cout << mapStudent[index] << endl;
	}

	//查找map中的元素
	//begin()和end()都是iterator型,分别代表map对象中第一个条目和最后一个条目
	map<int, string>::iterator iter2;
	iter2 = mapStudent.find(1);
	if (iter2!=mapStudent.end())
	{
		cout << "find,the value is" << iter2->second << endl;
	}
	else
	{
		cout << "Do not Find" << endl;
	}

	//从map中删除元素
	map<int, string>::iterator iter3;
	iter3 = mapStudent.find(2);//删除2,用关键字删除
	mapStudent.erase(iter3);
	int n = mapStudent.erase(2);//如果删除了会返回1,否则会返回0
	mapStudent.erase(mapStudent.begin(), mapStudent.end());//清空map

	return 0;

}

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

clear()        删除所有元素

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

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

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

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

erase()         删除一个元素

find()          查找一个元素

get_allocator() 返回map的配置器

insert()        插入元素

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

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

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

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

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

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

swap()           交换两个map

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值