📜  C ++中的无序对集与示例(1)

📅  最后修改于: 2023-12-03 15:13:45.686000             🧑  作者: Mango

C++中的无序对集与示例

在C++中,我们可以使用无序对(unordered_set)来存储不重复的值。无序对集与有序对集(set)类似,但是它们不会以任何特定的顺序存储值。这使得无序对的查找速度非常快。

创建无序对集

我们可以使用以下语法来创建一个无序对集:

#include <unordered_set>

std::unordered_set<int> mySet;

这将创建一个空的无序对集,其中元素类型为整数(int)。我们也可以在创建时初始化无序对集,例如:

#include <unordered_set>

std::unordered_set<int> mySet = {1, 2, 3, 4};

这将创建一个包含整数1234的无序对集。

插入和访问元素

我们可以使用insert()函数插入元素,例如:

mySet.insert(5);

这将插入整数5到无序对集中。我们可以使用count()函数来查找元素是否存在于无序对集中,例如:

if (mySet.count(5) > 0) {
    std::cout << "5 is in mySet" << std::endl;
}

这将输出5 is in mySet

我们还可以使用迭代器(iterator)来访问无序对集中的所有元素。例如:

for (auto it = mySet.begin(); it != mySet.end(); ++it) {
    std::cout << *it << std::endl;
}

这将按任意顺序输出无序对集中的所有元素。

删除元素

我们可以使用erase()函数删除无序对集中的元素。例如:

mySet.erase(5);

这将从无序对集中删除整数5

示例

下面是一个简单的示例程序,演示了如何使用无序对集:

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<int> mySet = {1, 2, 3, 4};
    mySet.insert(5);

    if (mySet.count(5) > 0) {
        std::cout << "5 is in mySet" << std::endl;
    }

    mySet.erase(5);

    for (auto it = mySet.begin(); it != mySet.end(); ++it) {
        std::cout << *it << std::endl;
    }

    return 0;
}

输出:

5 is in mySet
4
3
2
1