STL---set常用函数
在C++ 的STL(标准模板库)中, set 是一种关联式容器,用于存储唯一的元素,元素默认按升序排序。 set 的常用方法如下:
1. 构造函数:
-
set s; :创建一个空的 set , T 是存储元素的类型。
-
set s(other_set); :拷贝构造函数,用另一个 set 对象 other_set 初始化 s 。
-
set s(first, last); :使用迭代器范围 [first, last) 内的元素初始化 set 。
2. 插入元素: insert() 方法用于向 set 中插入元素。如果元素已存在,则不会插入。
#include <set>
#include <iostream>
int main() {
std::set<int> mySet;
mySet.insert(3);
mySet.insert(1);
mySet.insert(2);
for (int num : mySet) {
std::cout << num << " ";
}
return 0;
}
3. 删除元素:
-
erase(key) :删除值为 key 的元素,返回删除的元素个数( set 中元素唯一,所以要么是 0 要么是 1)。
-
erase(it) :删除迭代器 it 指向的元素。
-
erase(first, last) :删除迭代器范围 [first, last) 内的元素。
4. 查找元素: find(key) 方法用于查找值为 key 的元素,若找到则返回指向该元素的迭代器,否则返回 end() 迭代器。
#include <set>
#include <iostream>
int main() {
std::set<int> mySet = {1, 2, 3};
auto it = mySet.find(2);
if (it != mySet.end()) {
std::cout << "Element found" << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
return 0;
}
5. 获取元素个数: size() 方法返回 set 中元素的个数。
6. 判断是否为空: empty() 方法判断 set 是否为空,若为空返回 true ,否则返回 false 。
7. 迭代器相关:
-
begin() :返回指向 set 中第一个元素的迭代器。
-
end() :返回指向 set 中最后一个元素之后位置的迭代器(常作为迭代的结束条件)。
-
rbegin() :返回指向 set 中最后一个元素的反向迭代器。
-
rend() :返回指向 set 中第一个元素之前位置的反向迭代器。
这些是 set 容器最常用的一些方法,通过使用这些方法,可以方便地对 set 进行各种操作。