学习心得 - 数据结构 - 查漏补缺 - Set

好东西 qwq。

底层是红黑树,位于头文件 set。

定义

  1. set<int>st,只有一个数据类型。
  2. set<int>st(vec.begin(),vec.end()),直接拷贝迭代器区间。
  3. set<int>st(st2),直接拷贝容器。

迭代器操作

共 \(6\) 个。详见容器通用迭代器。

insert 操作

插入操作。

会将你插入的东西按照给定规则排序。(默认 less<类型>)

find 操作

查找操作。

找到返回当前位置的迭代器。

找不到返回 end(),而我们知道这里其实不应该有值,所以可以用来判定找没找到。

erase 操作

删除操作。

  • 可以删除迭代器,必须要不为 end() 否则 RE。 ???
  • 可以删除元素,不存在没有问题。
  • 可以删除一组元素。 使用迭代器区间 [fir,sec)。一般用于删除后面的元素以及前面的元素。

swap 操作

直接交换 set 没啥好讲的。

empty,size 操作

跟其他东西一样。

count 操作

由于只会插入一次,所以只会返回 \(0\) 和 \(1\),是存在性。

lower_bound 操作

千万不要用:lower_bound(st.begin(),st.end())!!!它不是那样存储下标的。

返回 \(\ge val\) 位置的迭代器。

upper_bound 操作

返回 \(>val\) 位置的迭代器。


https://www.luogu.com.cn/article/tib6kjhl

posted @ 2026-10-12 11:39  Ivan422  阅读(1)  评论(0)    收藏  举报