map的用法

来源:互联网 发布:js amd cmd区别 编辑:程序博客网 时间:2024/06/06 18:10

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

}




原创粉丝点击