STL 标准模板库之set总结

关于set

1.元素独一无二。
2.元素从小到大排列,通过二分查找树实现。

#include<set>
using namespace std;

一.构造类函数

缺省构造函数、拷贝构造函数、迭代器构造函数

#include<iostream>
#include<set>
using namespace std;
int main()
{
    set<int> s1;//构造函数
    set<int> ::iterator it;//相当于指针
    int a[]={3,4,5,1,2};
    set<int> s2(a,a+5);//利用指针初始化
    set<int> s3(s2);//复制构造函数
    cout<<"集合s3中的元素为:"<<endl;
    for(it=s3.begin();it!=s3.end();it++)//判断条件中it不能用大于小于号
    {
        cout<<*it<<" "; 
    } 
}

【运行结果】
集合s3中的元素:
1 2 3 4 5

二.迭代器类函数

begin()//返回set容器中第一个元素的位置
end()//返回set容器中第一个元素的下一个位置
rbegin()//返回set容器中最大元素的位置
rend()//返回set容器中最小元素的前一个位置
#include<iostream>
#include<set>
using namespace std;
using namespace std;
int main()
{
    set<int> s1;//构造函数
    set<int> ::iterator it;//迭代器,相当于指针
    set<int> ::reverse_iterator rit;//反向迭代器
    int a[]={3,4,5,1,2};
    set<int> s2(a,a+5);//利用指针初始化
    set<int> s3(s2);//复制构造函数
    cout<<"集合s3中的元素为:"<<endl;
    for(it=s3.begin();it!=s3.end();it++)//判断条件中it不能用大于小于号
    {
        cout<<*it<<" "; 
    }
    cout<<endl<<"集合s3中的元素为:"<<endl;
    for(rit=s3.rbegin();rit!=s3.rend();rit++)//判断条件中it不能用大于小于号
    {
        cout<<*rit<<" "; 
    }  
}

【运行结果】
集合s3中的元素:
1 2 3 4 5
集合s3中的元素:
5 4 3 2 1

三.容器类函数

empty()//如果set容器为空返回true;否则,返回false。
size()//返回set容器中元素个数
max_size()//返回set容器中能容纳的最大元素个数
int main()
{
    set<int> s1;//构造函数
    set<int> ::iterator it;//相当于指针
    int a[]={3,4,5,1,2};
    set<int> s2(a,a+5);//利用指针初始化
    set<int> s3(s2);//复制构造函数
    if(s1.empty())
        cout <<"s1为空"<<endl;
    else
        cout<<"s1非空"<<endl; 
    cout<<s2.size()<<endl;
    cout<<s2.max_size()<<endl;
}

【运行结果】
s1为空
5
461168601842738790

四.操作类函数

insert()//在set中插入一个元素
    s.insert(6)
swap()//交换两个集合中的元素
    s1.swap(s2)//交换s1和s2中的元素
erase()//删除set中指定元素
    erase(iterator it)//删除迭代器it指向的元素
    erase(5)//删除5这个元素,如果5存在,函数返回1;否则,返回0
clear()//清空当前set中的元素,实际上调用erase(begin(),end())
    s.clear()//删除s中所有元素
find()//查找set中的元素x,找到返回x的迭代器,没找到返回end的值
    iterator it=s.find(x)//将x的迭代器返回给it
count()//统计set中某一个元素个数,由于set容器中不允许出现相同元素,找到返回1,否则返回0
lower_bound()//返回第一个不小于元素x的迭代器
upper_bound()//返回第一个大于元素x的迭代器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值