STL之set篇

Posted 君凌烟阁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL之set篇相关的知识,希望对你有一定的参考价值。

insert为插入。set_intersection求交集,set_union求并集,是属于algorithm里的函数。

例题有 PAT甲级1063

技术分享
#include<iostream>
#include<cstring>
#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
int main()
{
    int n,m;
    scanf("%d",&n);
    set<int> si[n];
    for(int i=0;i<n;++i)
    {
        scanf("%d",&m);
        for(int j=0;j<m;++j)
        {
            int temp;
            scanf("%d",&temp);
            si[i].insert(temp);
        }
    }
    int k;
    scanf("%d",&k);
    for(int i=0;i<k;++i)
    {
        int s,e;
        set<int> ss,st;
        scanf("%d%d",&s,&e);
        --s,--e;
        //交集
        set_intersection(si[s].begin(),si[s].end(),si[e].begin(),si[e].end(),
                         inserter(ss,ss.begin()));
        //并集
        /*set_union(si[s].begin(),si[s].end(),si[e].begin(),si[e].end(),
                         inserter(st,st.begin()));
        */
        int same = ss.size();
        int total = si[s].size()+si[e].size()-same;//st.size();
        if(total==0)   printf("0.0%%\n");
        else printf("%.1lf%%\n",100.0*same/total);

    }

    return 0;
}
View Code

 

以上是关于STL之set篇的主要内容,如果未能解决你的问题,请参考以下文章

STL源代码剖析——STL算法之set集合算法

C++STL之map和set的使用

C++STL之map和set的使用

C++ STL之set详解

C++ STL之set详解

STL库之集合基本使用方法