• #include <set>


    set

    (set)头文件主要包括(set)(multiset)两个容器。他们都是有序集合,不过(set)存的元素不可重复。

    两者内部实现都是红黑树,在使用方法上差别不大,支持的函数基本相同。

    声明方式

    set<int> s;
    multiset<int> t;
    set<int>::iterator it;
    

    (s)(t)都是维护(int)类型数据的有序容器,其中(t)内的元素可重。迭代器(it)仅支持(++)(--)。我们以(int)类型的数据为例:

    s.size()​

    返回元素个数。

    s.empty()​

    判断(set)是否为空,为空则是逻辑真,否则就是逻辑假。

    s.clear()​

    清空(set)

    s.begin()/s.end()​

    返回(set)的首迭代器和尾迭代器。左闭右开,所以尾迭代器为空。

    s.insert(x)/s.erase(it/x)​

    插入一个(int)类型的数据,删除一个迭代器或者元素(x)。如果(x)已经是在集合中的了,并且是(set)而不是(multiset),那么就不会执行插入操作。时间复杂度为(O(log))。如果是(multiset)则会把所有等于(x)的元素全部删除,复杂度为(O(log+k))(k)为元素个数。

    s.find(x)​

    查找等于(x)的元素,返回一个迭代器。若不存在,则返回(s.end())。复杂度(O(log))的。

    s.lower_bound(x)/s.upper_bound(x)

    第一个是找(set)中大于等于(x)的最小的元素,第二个是找(set)中严格大于(x)的最小的元素,以迭代器的形式返回。时间复杂度为(O(log))。若不存在,则返回(s.end)()。

    s.count(x)

    返回集合中等于(x)的元素个数。复杂度为(O(log+k))(k)为元素个数。

  • 相关阅读:
    sopt:一个简单的python最优化库
    条件GAN论文简单解读
    python PIL 图像处理库简介(一)
    python自动制作gif并添加文字
    github+hexo搭建博客
    haskell简明入门(一)
    DCGAN 代码简单解读
    手机浏览器 H5直播
    js获取网页的宽高
    vue 对象赋值 对象身上已经有了属性,但是视图层并没有更新该数据 问题
  • 原文地址:https://www.cnblogs.com/AKMer/p/9889811.html
Copyright © 2020-2023  润新知