c++ 中 set 的用法详解
什么是 set?
set 是一种容器,它存储不重复且有序的元素。元素的顺序是根据特定的比较函数确定的,该函数决定元素的相对大小。
创建 set
要创建 set,可以使用以下语法:
<code class="cpp">set<t> mySet;</t>
其中,T
是 set 中元素的类型。
插入元素
可以使用 insert()
方法将元素插入 set 中:
<code class="cpp">mySet.insert(element);
如果元素已经存在,插入操作将被忽略。
查找元素
可以使用 find()
方法查找 set 中的元素:
<code class="cpp">auto it = mySet.find(element);
如果找到元素,it
将指向该元素;否则,it
将指向 set 的尾后。
删除元素
可以使用 erase()
方法删除 set 中的元素:
<code class="cpp">mySet.erase(it);
其中,it
是指向元素的迭代器。也可以使用 erase()
方法传入元素值进行删除。
遍历 set
可以使用以下方法遍历 set 中的元素:
- 使用迭代器:
<code class="cpp">for (auto it = mySet.begin(); it != mySet.end(); ++it) {
// 获取元素
}
- 使用 range-based for 循环:
<code class="cpp">for (auto element : mySet) {
// 获取元素
}
set 的其他方法
除了上述方法外,set 还提供了以下有用方法:
- size():返回 set 中元素的数目。
- empty():检查 set 是否为空。
- clear():清空 set 中的所有元素。
- lower_bound():返回大于或等于给定元素的第一个元素的迭代器。
- upper_bound():返回大于给定元素的第一个元素的迭代器。
- equal_range():返回一组迭代器,表示给定元素在 set 中的范围。