C++容器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;

                   maplive.insert(pair<int,string(102,"aclive"));

                   maplive.insert(map<int,string>::value_type(321,"hai"));

                   maplive[112]="April";     //map中最简单最常用的插入添加!


(3)map中元素的查找:

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

                   map<int,string>::iteratorl_it;

                   l_it=maplive.find(112);

                   if(l_it==maplive.end())

                        cout<<"wedonotfind112"<<endl;

                  else

                        cout<<"wofind112"<<endl;


(4)map中元素的删除:
                 如果删除112;
                 map<int,string>::iteratorl_it;

                 l_it=maplive.find(112);

                if(l_it==maplive.end())
                     cout<<"wedonotfind112"<<endl;
                else
                     maplive.erase(l_it);      //delete112;、


(5)map中swap的用法:
              Map中的swap不是一个容器中的元素交换,而是两个容器交换;

         如下代码:

intmain()
{
      
      map<int,int>m1,m2,m3;
      map<int,int>::iteratorm1_Iter;
      m1.insert(pair<int,int>(1,10));
      m1.insert(pair<int,int>(2,20));
      m1.insert(pair<int,int>(3,30));
      m2.insert(pair<int,int>(10,100));
      m2.insert(pair<int,int>(20,200));
      m3.insert(pair<int,int>(30,300));
      
      cout<<"Theoriginalmapm1is:";
      
      for(m1_Iter=m1.begin();m1_Iter!=m1.end();m1_Iter++)
      {
          cout<<""<<m1_Iter->second;
          cout<<"."<<endl;  
      }         
      
      m1.swap(m2);
      cout<<"Afterswappingwithm2,mapm1is:";       
      for(m1_Iter=m1.begin();m1_Iter!=m1.end();m1_Iter++)
      {
           cout<<""<<m1_Iter->second;
           cout<<"."<<endl; 
      }   
         
      cout<<"Afterswappingwithm2,mapm2is:";      
      for(m1_Iter=m2.begin();m1_Iter!=m2.end();m1_Iter++)
      {
            cout<<""<<m1_Iter->second;
            cout<<"."<<endl;
      }
       
      swap(m1,m3);       
      cout<<"Afterswappingwithm3,mapm1is:";
      for(m1_Iter=m1.begin();m1_Iter!=m1.end();m1_Iter++)
      {
             cout<<""<<m1_Iter->second;
             cout<<"."<<endl;
      }
}

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

      如下代码:

#include<map>
#include<iostream>
using namespace std;
intmain()
{

            map<int,int>m1;           
            map<int,int>::iteratorm1_Iter;
            m1.insert(pair<int,int>(1,20));
            m1.insert(pair<int,int>(4,40));
            m1.insert(pair<int,int>(3,60));
            m1.insert(pair<int,int>(2,50));
            m1.insert(pair<int,int>(6,40));
            m1.insert(pair<int,int>(7,30));
            
            cout<<"Theoriginalmapm1is:"<<endl;

            for(m1_Iter=m1.begin();m1_Iter!=m1.end();m1_Iter++)                  
                cout<<m1_Iter->first<<""<<m1_Iter->second<<endl;
}

最后的结果为:

Theoriginalmapm1is:

1    20

2    50

3    60

4    40

6    40

7    30


(7)map的基本操作函数:
         C++Maps是一种关联式容器,包含“关键字/值”对

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

         clear()                            删除所有元素

         count()                           返回指定元素出现的次数empty()如果map为空则返回trueend()返回指向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的函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值