#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;
}