STL中的平衡二叉树(set)

STL中的平衡二叉树(set)

之前说了multiset

现在来说说set容器

set的用法
  • set 和 mulset 的区别在于容器里不能出现重复的元素

    a 和b 重复 <=>“a 必须排在 b 前面” 和“b 必须排在a 前面” 都不成立。

  • set 插入元素可能不成功。(因为元素不能重复的原因,所以如果插入相同元素就会失败)

set 用法示例:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <set>
using namespace std;
int main()
{
    set<int >st;
    int a[10]={1,2,3,8,7,7,5,6,8,12};//注意这里有两个7,两个8。
    for(int i=0;i<10;++i)
        st.insert(a[i]);
    cout<<st.size()<<endl;//输出8(两个7,两个8都只留下一个,就是8个)
    set<int>::iterator i;//迭代器
    for(i=st.begin();i!=st.end();++i)
        cout<<*i<<",";//输出1,2,3,5,6,7,8,12,
    cout<<endl;
    pair<set<int>::iterator,bool> result= st.insert(2);//别慌,下面有解释
    if(!result.second)//条件成立说明插入不成功
        cout<<*result.first<<"already exists"<<endl;
    else 
        cout<<*result.first<<"inserted."<<endl;
    return 0;
}
pair 模板的用法

pair<T1,T2>类型等价于:

struct{

​ T1 first;

​ T2 second;

};

例如:

pair <int,double> a;

等价于:

struct{

​ int fitst;

​ double second;

} a;

a.first=1;

a.second=93.93;

相应的:pair<set< int >::iterator,bool>
struct{
set< int >::iterator first;
bool second;
};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值