📅  最后修改于: 2023-12-03 15:34:57.132000             🧑  作者: Mango
std::set
- C++ 的元素集合在C++中,std::set
是C++标准模板库(STL)中的一个容器,它是一个有序的集合,其中不允许重复元素的存在。它是根据元素的关键字进行排序的,并且对于任何一个元素,集合中都只有一个与之等价的元素。std::set
提供了快速的插入、查找和删除操作。让我们来一步步看一下如何使用std::set
。
C++中的std::set
是STL的一部分,因此你只需使用以下语句包含C++标准库头文件即可使用:
#include <set>
在C++中,我们可以使用以下几种方式初始化一个std::set
:
std::set<int> a;
std::set<int> b {1, 2, 3, 4, 5}; // C++11的初始化列表
std::set<int> c {b};
std::set<int> d (b.begin(), b.end());
我们可以使用以下语句向一个std::set
中插入一个新元素:
a.insert(10);
我们可以在初始化时将元素插入到std::set
中:
std::set<std::string> s {"apple", "banana", "cherry"};
s.insert("date");
我们可以使用以下语句从std::set
中删除指定元素:
a.erase(10);
我们还可以使用指向要删除元素的迭代器来删除元素:
auto it = b.find(3);
if (it != b.end()) // 如果3在set中
b.erase(it);
我们还可以使用以下语句从std::set
中删除所有元素:
a.clear();
我们可以使用以下语句在std::set
中查找指定元素:
auto it = b.find(3); // 返回指向3的迭代器,如果3不在set中返回end()
我们还可以使用以下语句来检查std::set
中是否存在某个元素:
if (b.count(3))
std::cout << "Found 3 in b" << std::endl;
else
std::cout << "3 not found in b" << std::endl;
如果元素在set中,count()方法返回1,否则返回0。
我们可以遍历std::set
中的元素,通常做法是使用迭代器:
std::set<int> b {1, 2, 3, 4, 5};
for (auto it = b.begin(); it != b.end(); it++)
std::cout << *it << std::endl;
std::set
是C++标准库中非常有用的一个容器,它提供了快速的插入、查找和删除操作,可以用来存储排序并保证唯一性的元素。本文介绍了如何使用std::set
来初始化、插入、删除、查找以及遍历元素。