关于set和map的用法

时间:2023-03-08 19:48:42

1.set

定义:每个元素最多只出现一次,并且默认的是从小到大排序。

set 遍历: 题目http://www.cnblogs.com/ZP-Better/p/4700218.html

for(set<int>::iterator it = dict.begin(); it != dict.end(); ++it) cout<<*it ;

set删除与插入:CodeForces 305C

#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <ctime>
#include <cmath>
#include <string>
#include <cstring>
#include <stack>
#include <queue>
#include <list>
#include <vector>
#include <map>
#include <set> using namespace std; typedef long long ll;
const int INF=0x3f3f3f3f;
const double eps=1e-;
const double PI=acos(-1.0); set<int>s; int main()
{
int n,t;
int maxx;
scanf("%d",&n);
maxx=;
for(int i=;i<n;i++)
{
scanf("%d",&t);
while(s.count(t))//s.count(t)计数t出现几次。
{
s.erase(t);//删除
t++;
}
s.insert(t);//插入
maxx=max(maxx,t);
}
printf("%d\n",maxx-s.size()+);
return ;
}

2. map 映射

map遍历

map<string, int>::iterator it;
for(it=a.begin();it!=a.end();++it)
cout<<"key: "<<it->first <<" value: "<<it->second<<endl;

map应用:题目http://www.cnblogs.com/ZP-Better/p/4714803.html

未完待续~