map的用法

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。

下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描述(本篇文章中不用char *来描述字符串,而是采用STL中string来描述),下面给出map描述代码:

Map<int, string>mapStudent;

这是一个项目的代码(垃圾分类)

在.h中

typedef enum {

PAPER=3,//废纸垃圾桶

GLASS=7,//玻璃瓶垃圾桶

METAL=8,//铝罐垃圾桶

PLASTIC=5,//塑料垃圾桶

ORGANICS=6,//厨余垃圾桶

CLOTHES=1,//旧衣物垃圾桶

HARMFUL=4,//有害垃圾桶

OTHER=2//其他垃圾桶

} TRASH_TYPE;

map<TRASH_TYPE, vector<GARBAGE_TYPE> > trashInfo;//垃圾类型与垃圾对应信息

在.cpp中

void LevelProxy::initLevelInfo() {

levelEasyInfo[1].push_back(PAPER);


levelEasyInfo[2].push_back(PAPER);

levelEasyInfo[2].push_back(PLASTIC);


levelEasyInfo[3].push_back(PAPER);

levelEasyInfo[3].push_back(GLASS);


levelEasyInfo[4].push_back(PLASTIC);

levelEasyInfo[4].push_back(GLASS);


levelEasyInfo[5].push_back(PLASTIC);

levelEasyInfo[5].push_back(METAL);


levelEasyInfo[6].push_back(GLASS);

levelEasyInfo[6].push_back(METAL);


levelEasyInfo[7].push_back(PAPER);

levelEasyInfo[7].push_back(CLOTHES);


levelEasyInfo[8].push_back(PLASTIC);

levelEasyInfo[8].push_back(CLOTHES);


levelEasyInfo[9].push_back(GLASS);

levelEasyInfo[9].push_back(CLOTHES);


levelEasyInfo[10].push_back(METAL);

levelEasyInfo[10].push_back(CLOTHES);


levelHardInfo[1].push_back(ORGANICS);


levelHardInfo[2].push_back(CLOTHES);

levelHardInfo[2].push_back(ORGANICS);


levelHardInfo[3].push_back(CLOTHES);

levelHardInfo[3].push_back(ORGANICS);

levelHardInfo[3].push_back(HARMFUL);


levelHardInfo[4].push_back(PAPER);

levelHardInfo[4].push_back(ORGANICS);

levelHardInfo[4].push_back(HARMFUL);


levelHardInfo[5].push_back(PLASTIC);

levelHardInfo[5].push_back(ORGANICS);

levelHardInfo[5].push_back(HARMFUL);


levelHardInfo[6].push_back(GLASS);

levelHardInfo[6].push_back(ORGANICS);

levelHardInfo[6].push_back(HARMFUL);


levelHardInfo[7].push_back(METAL);

levelHardInfo[7].push_back(ORGANICS);

levelHardInfo[7].push_back(HARMFUL);


levelHardInfo[8].push_back(HARMFUL);

levelHardInfo[8].push_back(ORGANICS);

levelHardInfo[8].push_back(OTHER);


levelHardInfo[9].push_back(CLOTHES);

levelHardInfo[9].push_back(ORGANICS);

levelHardInfo[9].push_back(OTHER);


levelHardInfo[10].push_back(CLOTHES);

levelHardInfo[10].push_back(HARMFUL);

levelHardInfo[10].push_back(OTHER);

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值