C++ 中的 set
是一种关联容器,它包含一组唯一的对象。set
中的元素在插入时自动排序,并且不允许重复。以下是一些常用的 set
操作:
- 插入元素:使用
insert()
方法将元素插入到set
中。
std::setmySet; mySet.insert(10); mySet.insert(20); mySet.insert(30);
- 删除元素:使用
erase()
方法从set
中删除元素。
mySet.erase(20); // 删除元素 20
- 查找元素:使用
find()
方法查找set
中的元素。如果找到了元素,则返回指向该元素的迭代器;否则返回指向set
中的尾部元素的迭代器。
auto it = mySet.find(30); if (it != mySet.end()) { std::cout << "Found: " << *it << std::endl; } else { std::cout << "Not found" << std::endl; }
- 遍历元素:使用迭代器遍历
set
中的所有元素。
for (auto it = mySet.begin(); it != mySet.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl;
- 检查元素是否存在:使用
count()
方法检查set
中是否存在指定元素。如果存在,则返回 1;否则返回 0。
if (mySet.count(20) > 0) { std::cout << "20 exists in the set" << std::endl; } else { std::cout << "20 does not exist in the set" << std::endl; }
- 获取集合大小:使用
size()
方法获取set
中元素的数量。
std::cout << "Set size: " << mySet.size() << std::endl;
- 清空集合:使用
clear()
方法清空set
中的所有元素。
mySet.clear();
- 检查集合是否为空:使用
empty()
方法检查set
是否为空。如果为空,则返回true
;否则返回false
。
if (mySet.empty()) { std::cout << "Set is empty" << std::endl; } else { std::cout << "Set is not empty" << std::endl; }