STL 中的map与multimap

映射(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值