STL——set

set,就是数学上的集合——每个元素最多只出现一次,并且set中的元素已经从小到大排好序。

具体看代码,不过要注意 s.end() 这个位置不存元素!!!!

begin()    ,返回set容器的第一个元素

end()      ,返回set容器的最后一个元素

clear()    ,删除set容器中的所有的元素

empty()    ,判断set容器是否为空

max_size()   ,返回set容器可能包含的元素最大个数

size()      ,返回当前set容器中的元素个数

erase()              ,删除指定位置的元素 

#include <bits/stdc++.h>
using namespace std;
int main()
{
    set<int> s1;
    set<int>::iterator iter;//输出元素
    set<int>::iterator first;
    set<int>::iterator second;
    
    //插入元素
    s1.insert(4);
    s1.insert(1);
    s1.insert(2);
    s1.insert(5);
    second = s1.end();
    second--;
    cout<<"set size():"<<s1.size()<<endl;
    cout<<"set 中第一个元素为:"<<*s1.begin()<<endl;
    cout<<"set 中最后一个元素为:"<<*second<<endl;
    cout<<"set 中 2 出现的次数"<<s1.count(2)<<endl;//要么是1 要么是零
    cout<<"set 中 4 出现的次数"<<s1.count(4)<<endl;
    if(s1.empty()){
        cout<<"set 为空"<<endl;
    }

    //输出set中元素
    for(iter = s1.begin() ;iter != s1.end(); iter++)
    {
        cout<<*iter<<" ";
    }
    cout<<endl;

    //查找元素
    if((iter = s1.find(2)) != s1.end())
    {
        cout<<"查找成功"<<endl;
    }

    //删除set中元素
    first = s1.begin();
    second = s1.end();
    second--;
    s1.erase(s1.begin());//第一种 删除定位器位置元素
    s1.erase(2);//第二种 直接删除元素
    s1.erase(first ,second );//第三种 删除定位器区域的元素
    s1.clear();//第四种 删除所有元素
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/tonyyy/p/10353530.html