c++ STL 集合:set

<set集合>

set是STL的一个关联容器,它里面的元素不会重复,且自动呈现为有序性。

头文件:#include<set>

功能:用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。内部采用的是一种非常高效的平衡检索二叉树:红黑树。

常用语句:begin()返回map头部迭代器

              end()返回尾部迭代器

             clear()清空所有元素

             erase(elem)删除一个元素

             empty()如果为空则返回true

             size()返回set大小

             count(elem)返回某个元素个数

             insert(elem) 插入某个元素

举一个简单的例子:

 /*
 qq:1239198605
 ctgu_yyf
        */

#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<set> 
#define ll long long
using namespace std;

set<int> ans;
int main()
{
   ios::sync_with_stdio(false);
   
   int a[10]={1,2,1,3,4,5,9,9,9,6};
   for(int i=0;i<10;i++)
   ans.insert(a[i]);
   
   
   set<int>::iterator iter;
   //输出容器中的元素 
   for(iter=ans.begin();iter!=ans.end();iter++)
   cout<<*iter<<" ";
   cout<<endl; 
   
   //输出容易中元素九的个数 
   cout<<ans.count(9)<<endl;
   
   //清除元素9 
   ans.erase(9);
   
    //输出容易中元素九的个数 
   cout<<ans.count(9)<<endl;


return 0;
}

输出:

1 2 3 4 5 6 9
1
0

        

牛客A题例题:

链接:https://www.nowcoder.com/acm/contest/132#question

 /*
 qq:1239198605
 ctgu_yyf
        */

#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<set> 
#define ll long long
using namespace std;

set<int> ans;
int main()
{
   ios::sync_with_stdio(false);
   int k;
   int a[6],b[6]={0};
   
   for(int i=0;i<6;i++)
   cin>>a[i];
   
   for(int i=0;i<6;i++)
   for(int j=0;j<6;j++)
   if(a[i]==a[j])
   {
   	b[i]++;
   }
   
   for(int i=0;i<6;i++)
   ans.insert(b[i]);
   
   if((ans.count(4)||ans.count(5))&&ans.count(1))
   cout<<"Bear"<<endl;
   
   else if((ans.count(4)&&ans.count(2))||ans.count(6))
   cout<<"Elephant"<<endl;
   
   else 
   cout<<"Hernia"<<endl;
   


return 0;
}

猜你喜欢

转载自blog.csdn.net/k_koris/article/details/81365392