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);
}