C++中的map

一、map的概念

map是 关键字-值 对的集合,通常被称为关联数组。map与数组很相似,对于数组来说,一个下标对应的就是一个值,map是一个键对应一个值,而这个键不需要为数字类型,甚至map的键还可以为一个map,当然其对应的值也可以为map,就像

map<map<int, string>, map<string, int>>  mapStrAndInt;

二、map的操作

 

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的函数

 

三、具体使用代码示例

#include "stdafx.h"
#include <iostream>
#include <map>
#include <string>
using namespace std;


int main(int argc, char *argv[]) 
{
	// 定义一个map
	map<int, string> mapIntToStr;
	//map的插入
	mapIntToStr.insert(pair<int, string>(1, "string_one"));
	mapIntToStr.insert(pair<int, string>(2, "string_two"));
	mapIntToStr.insert(pair<int, string>(3, "string_three"));
	mapIntToStr.insert(map<int, string>::value_type(4, "string_fpur"));
	mapIntToStr.insert(map<int, string>::value_type(5, "string_five"));
	mapIntToStr.insert(map<int, string>::value_type(6, "string_six"));
	// 下面的插入是通过下标插入值,但这种情况会对已赋了值的键值对覆盖
	// 例如下面就会将1、2、3的位置的值修改,所以我个人不是很喜欢用
	//mapIntToStr[1] = "student_one";
	//mapIntToStr[2] = "student_two";
	//mapIntToStr[3] = "student_three";

	//map的遍历
	// 1迭代器
	map<int, string>::iterator iter;
	for (iter = mapIntToStr.begin(); iter != mapIntToStr.end(); iter++)
	{
		cout << iter->first << ' ' << iter->second << endl;
	}
	cout << "我是一道快乐的分割线********************" << endl;
	// 2数组方式
	for (int nindex = 1; nindex <= mapIntToStr.size(); nindex++)
	{ 
		cout << mapIntToStr[nindex] << endl;
	}

	system("pause");
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值