STL之set

set:

1.可以定义成数组形式:eg set<int> st[1008];

2.两个set类型的集合     有直接求并集和交集的操作函数:首先包含头文件 ‘’iterator‘’  set_union(第一个set集合的头迭代器,第一个set集合的尾迭代器,第二个set集合的头迭代器,第二个set集合的尾迭代器,inserter(st,st。begin))eg上代码:

#include<iostream>
#include<cstdio>
#include<vector>
#include<set>
#include <iterator>
#include<algorithm>
using namespace std;

int N,M,k=0;
vector< set<int> > vec;
set<int> st;
int main()
{ 
    scanf("%d",&N);
    while(N--)
    {
        set<int> mx;
        scanf("%d",&M);
        int x;
        for(int i=0;i<M;i++)
        {
            scanf("%d",&x);
            mx.insert(x);
        }
        
        vec.push_back(mx);
        //printf("vec:%d
",vec[k++].size());    
    }
    
    int K,x,y;
    scanf("%d",&K);
    for(int i=0;i<K;i++)
    {
    scanf("%d%d",&x,&y);
    int len;
    len=vec[x-1].size()+vec[y-1].size();
    set_union(vec[x-1].begin(),vec[x-1].end(),vec[y-1].begin(),vec[y-1].end(),inserter(st,st.begin()));
    printf("%.2lf%%
",1.0*(len-st.size())/st.size()*100);
    st.clear();
    }
    return 0;    
} 

 3.查找已有set集合中有没有某个元素:s.count(y)查找s集合中有没有y,如果有返回1.没有返回0

原文地址:https://www.cnblogs.com/rainyskywx/p/10615923.html