📜  set c++的元素(1)

📅  最后修改于: 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来初始化、插入、删除、查找以及遍历元素。