C++ set 用法略解

先看一段代码。

#include<iostream>
#include<set>
#include<cstdio>
#include<cstdlib>
#include<cstring>

using namespace std;

set<int> s;
int n;
int a;

int main(){
    cin>>n;
    for(int i=1;i<=n;++i){
        cin>>a;
        s.insert(a); 
    }
    for(set<int>::iterator it=s.begin();it!=s.end();++it)
        cout<<*it<<' '; //flag
}

以上代码概括地介绍了 set 的部分语法。该程序运行结果如下图。
在这里插入图片描述

我们看到,set 内部是有序的,STL 提供了一种迭代器 iterator,用于遍历 set。

set 是一个平衡树,支持以下几种操作:

  1. 插入一个元素;
  2. 删除一个元素;
  3. 查询一个元素的前驱、后继。

每次操作的时间复杂度 \(O(\log n)\)

下表列出了 set 的部分常用函数。

函数名称 函数功能
begin() 返回 set 初始元素迭代地址
end() 返回 set 末尾元素迭代地址
insert(type x) 插入元素 \(x\)
erase(type x) 删除元素 \(x\)
clear() 清空 set
empty() 判断 set 是否为空

猜你喜欢

转载自www.cnblogs.com/yhmaster/p/11674171.html