<set>
是 C++ 标准库中的头文件,提供了用于实现集合的模板类 std::set
。std::set
是一个有序的集合,其中的元素是唯一的,且按升序排序。
以下是 <set>
头文件中 std::set
提供的一些主要功能和用法:
insert(val)
: 向集合中插入值为?val
?的元素。 #include <set>
#include <iostream>
int main() {
? ? std::set<int> mySet;
? ? mySet.insert(3);
? ? mySet.insert(1);
? ? mySet.insert(4);
? ? for (int val : mySet) {
? ? ? ? std::cout << val << " ";
? ? }
? ? return 0;
}
输出:
1 3 4
erase(val)
: 从集合中删除值为?val
?的元素。 #include <set>
#include <iostream>
int main() {
std::set<int> mySet;
mySet.insert(3);
mySet.insert(1);
mySet.insert(4);
mySet.erase(1);
for (int val : mySet) {
std::cout << val << " ";
}
return 0;
}
输出:
3 4
find(val)
: 查找值为?val
?的元素,返回指向该元素的迭代器;如果没有找到,返回?end()
。 #include <set>
#include <iostream>
int main() {
std::set<int> mySet;
mySet.insert(3);
mySet.insert(1);
mySet.insert(4);
auto it = mySet.find(1);
if (it != mySet.end()) {
std::cout << "Element found: " << *it << std::endl;
} else {
std::cout << "Element not found." << std::endl;
}
return 0;
}
输出:
Element found: 1
迭代:
#include <set>
#include <iostream>
int main() {
std::set<int> mySet;
mySet.insert(3);
mySet.insert(1);
mySet.insert(4);
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
begin()
,?end()
: 返回指向集合起始和结束的迭代器,可用于遍历集合的所有元素。 输出:
1 3 4