zoukankan      html  css  js  c++  java
  • pair运用

     1 #include <iostream>
     2 #include <string>
     3 #include <map>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 typedef int KeyType;  //typedef 为现有类型创建别名 ,定义易于记忆的类型名  为一种数据类型定义一个新名字
     8 typedef std::pair<const KeyType,std::string>Pair;  //定义pair对象
     9 typedef std::multimap<KeyType,std::string>MapCode; //定义multimap对象
    10 //multimap中的key是可以重复的,而普通map中的key不可以重复
    11 int main()
    12 {
    13 MapCode codes;
    14 codes.insert(Pair(415,"San Francisco"));  //插入数据
    15 codes.insert(Pair(510,"Oakland"));
    16 codes.insert(Pair(718,"Brooklyn"));
    17 codes.insert(Pair(718,"Staten Island"));
    18 codes.insert(Pair(415,"San Rafael"));
    19 codes.insert(Pair(510,"Berkeley"));
    20 
    21 cout<<"number of cities with area code 415: "<<codes.count(415)<<endl;  //415的个数
    22 cout<<"number of cities with area code 718: "<<codes.count(718)<<endl;  //718的个数
    23 cout<<"number of cities with area code 510: "<<codes.count(510)<<endl;  //510的个数
    24 cout<<"Area Code  City
    ";
    25 
    26 MapCode::iterator it;    //iterator 迭代器 提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节
    27 for(it=codes.begin();it!=codes.end();++it)    //begin()开始,end()结尾
    28 cout<<"   "<<(*it).first<<"   "<<(*it).second<<endl;  //(*t).first代表第一个值,(*t).second代表第二个值
    29 
    30 pair<MapCode::iterator,MapCode::iterator> range=codes.equal_range(718); //equal range 获取相等元素的子范围
    31 cout<<"cities with area code:
    ";
    32 for(it=range.first;it!=range.second;++it)  //pair::first是指向子范围左边界的迭代器 pair::last是指向子范围右边界的迭代器
    33 cout<<(*it).second<<endl;
    34 system("pause");
    35 return 0;
    36 }

  • 相关阅读:
    聊聊关于性能优化和其他(一)
    JavaScript 事件循环及异步原理(完全指北)
    SPA路由机制详解(看不懂不要钱~~)
    Web安全系列(三):XSS 攻击进阶(挖掘漏洞)
    Web安全系列(二):XSS 攻击进阶(初探 XSS Payload)
    浅谈Generator和Promise原理及实现
    Kubernetes 服务目录
    Kubernetes 网络模型
    个人开源贡献记录
    【转载】DTO – 服务实现中的核心数据
  • 原文地址:https://www.cnblogs.com/qiwu1314/p/8916511.html
Copyright © 2011-2022 走看看