关于set和map的用法

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-10;
const double PI=acos(-1.0);

set<int>s;

int main()
{
    int n,t;
    int maxx;
    scanf("%d",&n);
        maxx=0;
        for(int i=0;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
",maxx-s.size()+1);
    return 0;
}

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

未完待续~

原文地址:https://www.cnblogs.com/ZP-Better/p/4716138.html