C++ map 常用操作的使用方式

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <map>
using namespace std;
map<int,int>mapp;
int main()
{
    //判断map是否为空
    if(mapp.empty())
        printf("mapp为空\n");
    //map的插入 有两种方法
    mapp.insert(pair<int,int>(1,10));
    mapp.insert(pair<int,int>(5,50));
    mapp.insert(pair<int,int>(7,70));
    mapp.insert(pair<int,int>(3,30));
    mapp.insert(pair<int,int>(4,40));
    mapp[6]=60;
    //map的查找功能 find()函数返回一个迭代器指向键值为key的元素,如果没有找到就返回指向map尾部的迭代器
    if(mapp.find(6)==mapp.end())
        printf("没有找到元素\n");
    else
        printf("元素的value值为%d\n",mapp[6]);
    //map的删除操作
    map<int,int>::iterator it;
    for (int i=0;i<2;i++)
    {
        int n=6;
        it=mapp.find(n);
        if(it==mapp.end())
            printf("没有找到元素\n");
        else
        {
            printf("%d\n",mapp[n]);
            mapp.erase(it);
        }
    }
    //map的遍历
    for (it=mapp.begin();it!=mapp.end();it++)
           printf("%d %d\n",it->first,it->second);


    //count,返回的是被查找元素的个数。如果有,返回1;否则,返回0。
    map<int,int>mapp1;
    for (int i=0;i<10;i++)
    {
        mapp1.insert(pair<int,int>(i%2,i));
    }
    for (int i=0;i<3;i++)
        if(mapp1.count(i))
            printf("存在%d呢\n",i);
        else
            printf("不存在%d呢\n",i);
    //size,返回map中元素的个数
         printf("mapp1中含有%d个元素呢\n",mapp1.size());
    //swap ,两个map容器之间交换
      map<int,int>m1,m2;
      for (int i=0;i<10;i++)
      {
          if(i%2)
          {
              m1[i]=i;
          }
          else
          {
              m2[i]=i;
          }
      }
      map<int,int>::iterator itt;
      printf("交换之前:\n");
      printf("m1中的:\n");
      for (itt=m1.begin();itt!=m1.end();itt++)
      {
          printf("%d %d\n",itt->first,itt->second);
      }
      printf("m2中的:\n");
      for (itt=m2.begin();itt!=m2.end();itt++)
      {
          printf("%d %d\n",itt->first,itt->second);
      }
      swap(m1,m2);
       printf("交换之后:\n");
      printf("m1中的:\n");
      for (itt=m1.begin();itt!=m1.end();itt++)
      {
          printf("%d %d\n",itt->first,itt->second);
      }
      printf("m2中的:\n");
      for (itt=m2.begin();itt!=m2.end();itt++)
      {
          printf("%d %d\n",itt->first,itt->second);
      }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41410799/article/details/81584456
今日推荐