• C++ STL map使用


    Map是c++的一个标准容器,它提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!
    1. map构造函数;
    map<string , int >mapstring; map<int ,string >mapint;
    map<sring, char>mapstring; map< char ,string>mapchar;
    map<char ,int>mapchar; map<int ,char >mapint;  

    2. map添加数据;
    map<int ,string> maplive;
    1.maplive.insert(pair<int,string>(102,"aclive"));
    2.maplive.insert(map<int,string>::value_type(321,"hai"));
    3, maplive[112]="April";//map中最简单最常用的插入添加!

    3,map中元素的查找:

    find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。

    map<int ,string >::iterator l_it;;
    l_it=maplive.find(112);
    if(l_it==maplive.end())
    cout<<"we do not find 112"<<endl;
    else cout<<"wo find 112"<<endl;


    4,map中元素的删除:
    如果删除112;
    map<int ,string >::iterator l_it;;
    l_it=maplive.find(112);
    if(l_it==maplive.end())
    cout<<"we do not find 112"<<endl;
    else maplive.erase(l_it); //delete 112;

    5.map的sort问题:
    Map中的元素是自动按key升序排序,所以不能对map用sort函数

    6.map的基本操作函数

    C++ Maps是一种关联式容器,包含“关键字/值”对

     

      begin() 返回指向map头部的迭代器

     

      clear() 删除所有元素

     

      count() 返回指定元素出现的次数

     

      empty() 如果map为空则返回true

     

      end() 返回指向map末尾的迭代器

     

      equal_range() 返回特殊条目的迭代器对

     

      erase() 删除一个元素

     

      find() 查找一个元素

     

      get_allocator() 返回map的配置器

     

      insert() 插入元素

     

      key_comp() 返回比较元素key的函数

     

      lower_bound() 返回键值>=给定元素的第一个位置

     

      max_size() 返回可以容纳的最大元素个数

     

      rbegin() 返回一个指向map尾部的逆向迭代器

     

      rend() 返回一个指向map头部的逆向迭代器

     

      size() 返回map中元素的个数

     

      swap() 交换两个map

     

      upper_bound() 返回键值>给定元素的第一个位置

     

      value_comp() 返回比较元素value的函数 

    //使用map的Demo

     1 void CLoadDllDemoDlg::OnBnClickedButton17()
     2 {//STL MAP
     3     /*定义CString为key,int值为value的map*/
     4     std::map<CString, int>mapDemo;
     5 
     6     for(int i = 0; i < 10; i++)
     7     {//添加数据
     8         CString strKey;
     9         strKey.Format(_T("key:%d"), i);
    10         /*方法1*/
    11         mapDemo.insert(std::make_pair<CString, int>(strKey, i));
    12         /*方法2*/
    13         //mapDemo.insert(map<CString, int>::value_type (strKey, i)); 
    14     }
    15 
    16     /*查找数据*/
    17     CString strFindKey;
    18     std::map<CString, int>::iterator itFind;
    19     for(int p = 0; p < 15; p++)
    20     {
    21         strFindKey.Format(_T("key:%d"), p);
    22         itFind = mapDemo.find(strFindKey);
    23         if(itFind != mapDemo.end())
    24         {//找到数据
    25             int nVal = itFind->second;
    26             if(9 == nVal)
    27             {//删除该条数据
    28                 mapDemo.erase(itFind);
    29             }
    30         }
    31     }
    32 }
  • 相关阅读:
    【转载】Linux下各文件夹的含义和用途
    【转载】Linux 通过mount -o loop 配置本地.iso镜像为yum源(yum仓库)
    Fedora 和 RedHat 以及 SUSE 中 YUM 工具的使用
    【转】下载对应内核版本的asmlib
    【转】VMWare vCenter 6.0安装配置
    【转】在VMware中为Linux系统安装VM-Tools的详解教程
    【转】虚拟化(五):vsphere高可用群集与容错
    html拼接时onclick事件传递json对象
    bootstrap table 解析写死的json.并且把进度条放进列中。
    开发规范实体和值对象
  • 原文地址:https://www.cnblogs.com/lpxblog/p/4607155.html
Copyright © 2020-2023  润新知