map的用法
2016-09-04 15:40
204 查看
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;
}
上面的链接包含了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;
}
相关文章推荐
- MyBatis学习之一:MyBatis简介与配置MyBatis+Spring+MySql
- 7_13_R题 yy math problem(数学、模拟)
- CSU1808 地铁
- 公司财务发工资时,记录了当时发工资的资料Employee.txt 1.定义公司员工类Employee,属性有:工号,姓名,性别,工资(double类型),进行属性的隐藏和封装,重写toString.
- HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者
- 7_13_P题 Hack it!(数学)
- 值得学习的blog
- ubuntu使用超级管理员root登录
- Redis探索之旅(8)- Redis数据类型之哈希表
- 7_13_M题 Expedition(贪心、优先队列)
- 7_13_K题 Palindromes(模拟)
- CodeForces 456D Elections(字典树+dp)
- JavaScript学习小结
- 7_13_G题 Median(二分)
- CodeForces 691D Swaps in Permutation(并查集)
- 快速傅里叶变换(FFT)和数论变换(NTT)模板
- Poj 3070 Fibonacci (矩阵快速幂)
- 7_13_F题 K Best(二分、最大化平均值)
- Java 面试题和答案 - (下)
- Sticks