http://blog.csdn. net/diaolingle/article/details/51388585
上面的链接包含了map的大部分基本用法
这里介绍含多个参数的map用法, 和pair的用法
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <map>
using namespace std;
const int N = 700500;
const int inf = 0x3f3f3f3f;
int main()
{
string s1, s2;
map<int, pair<string, string> > m; //最后> >之间有空格
pair <string, string> s;
for(int i = 1; i<=2;i++)
{
cin>>s1>>s2;
m[i] = pair<string, string>(s1, s2);
}
map <int, pair<string, string> >:: iterator it;
for(int i = 1; i<=2;i++)
cout<<m[i].first<<m[i].second<<endl;
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <map>
#include <set>
using namespace std;
const int N = 100005;
typedef long long LL;
int main()
{
int n, nm;
map<int, int> m;
while(~scanf("%d", &n))
{
m.clear();
for(int i = 1; i<=n;i++)
{
scanf("%d", &nm);
m[nm]++;
}
map<int, int>::iterator it;
int sum = 0;
for(it=m.begin();it!=m.end();it++)
{
if(it->second&1)
{
sum+=(it->second-1)/2;
}
else
{
tf("%d\n", sum/=2);
} sum+=it->second/2;
}
}
printf("%d\n", sum/=2);
}
return 0;
}