#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>
#include <deque>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
using namespace std;
void printMap(map<int, int> &m)
{
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
{
cout << it->first << " " << it->second << endl;
}
}
void test01()
{
map<int, int> m;
m.insert(pair<int, int>(1, 10));
m.insert(pair<int, int>(2, 20));
m.insert(pair<int, int>(3, 30));
m.insert(make_pair(4, 40));
m[5] = 50;
printMap(m);
map<int,int>m2(m);
printMap(m2);
map<int,int>m3;
m3=m;
printMap(m3);
}
void test02()
{
map<int,int>m;
m.insert(pair<int,int>(1,10));
m.insert(pair<int,int>(2,20));
m.insert(pair<int,int>(3,30));
if(m.empty())
{
cout<<"map is empty"<<endl;
}
else
{
cout<<"map is not empty"<<endl;
cout<<"size:"<<m.size()<<endl;
}
}
void test03()
{
map<int,int>m;
m.insert(pair<int,int>(1,10));
m.insert(make_pair(2,20));
m[3]=30;
printMap(m);
m.erase(2);
printMap(m);
}
void test04()
{
map<int,int>m;
m.insert(pair<int,int>(1,10));
m.insert(make_pair(2,20));
m[3]=30;
map<int,int>::iterator it = m.find(2);
if(it!=m.end())
{
cout<<"find:"<<it->first<<" "<<it->second<<endl;
}
else
{
cout<<"not find"<<endl;
}
int num=m.count(3);
cout<<"num:"<<num<<endl;
printMap(m);
cout<<m.count(2)<<endl;
}
class MyCompare
{
public:
bool operator()(int v1,int v2) const
{
return v1>v2;
}
};
void test05()
{
map<int,int,MyCompare>m;
m.insert(pair<int,int>(1,10));
m.insert(make_pair(2,20));
m[3]=30;
for(map<int,int,MyCompare>::iterator it=m.begin();it!=m.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
}
int main()
{
//test01();
//test02();
//test03();
//test04();
test05();
return 0;
system("pause");
}