STL 中的map与multimap

来源:互联网 发布:秋天 知乎 编辑:程序博客网 时间:2024/05/27 14:14

映射(map

/**STL 测试*map and multimap 映射和多重映射*/#include <iostream>#include <map>#include <string>typedef std::string str;typedef std::map<char, int, std::less<char>> CIMAP;typedef std::multimap<str, str, std::less<str>> SSMMAP;typedef std::pair<str, str> sspair;int main(){    //map1 char为键类型,int为值类型  map会自动排序(依据less)    CIMAP map1;    CIMAP::iterator it;    //初始化map1    map1['c'] = 3;    map1['d'] = 4;    map1['a'] = 1;    map1['b'] = 2;    map1.insert(CIMAP::value_type('e',5)); //map1.inser(std::pair<char, int>('e',5));    //输出map1 ,first对应char,second对应int    std::cout<<" map1.char -- map1.int :"<<std::endl;    for(it = map1.begin(); it != map1.end(); it++)        std::cout<<" "<< (*it).first <<": "<< (*it).second <<"\n";    //检索d键对应的值    CIMAP::const_iterator ptr;    ptr = map1.find('d');    std::cout<< (*ptr).first <<"键对应的值:"<<(*ptr).second <<std::endl;    //定义多重映射    SSMMAP mulmap;    SSMMAP::iterator mulit;    mulmap.insert(sspair("Computer ","can surf the Internet."));    mulmap.insert(sspair("Computer ","can play games."));    mulmap.insert(sspair("Computer ","can shop."));    mulmap.insert(sspair("smartphone ","also can surf the Internet."));    mulmap.insert(sspair("smartphone ","also can play games."));    //输出mulmap    for(mulit = mulmap.begin(); mulit != mulmap.end(); mulit++)        std::cout<< (*mulit).first << (*mulit).second <<std::endl;    //检索并输出Computer键所对应的所有值    std::cout<<"find Computer: "<<std::endl;    mulit = mulmap.find(str("Computer "));    while((*mulit).first =="Computer "){        std::cout<< (*mulit).first << (*mulit).second <<std::endl;        mulit++;    }    return 0;}

注:编译环境为Qtcreator

0 0