无序向量集在C++中的例子

无序向量集在C++中的例子

C++中,有序集合和无序集合都是十分常见的容器。有序集合是按照特定顺序来存储元素并且支持排序操作,而无序集合则不支持排序,在插入和查找的过程中都比有序集合更快。 在本文中,我们将主要介绍无序向量集容器的用法,包括创建、插入、删除、查找元素和使用迭代器进行遍历等。

无序向量集与有序向量集相似,但是它们在内部实现上有所不同。无序向量集使用哈希表实现,而有序向量集使用红黑树实现。因此,无序向量集有更快的插入和查找速度,但是元素的顺序是随机的。

创建无序向量集

定义一个无序向量集可以采用STL的unordered_set实现。以下是创建一个int类型的无序向量集的示例代码:

#include <iostream>
#include <unordered_set>
using namespace std;

int main() {
    unordered_set<int> mySet;
    return 0;
}

在上述示例代码中,我们首先引用了iostreamunordered_set头文件。然后,我们定义了一个名为mySet的空无序向量集。

插入元素

我们可以使用insert函数在无序向量集中插入元素,该函数的时间复杂度为常数级别。以下是向无序向量集中插入元素的示例代码:

#include <iostream>
#include <unordered_set>

using namespace std;

int main() {
    unordered_set<int> mySet;
    mySet.insert(1);
    mySet.insert(2);
    mySet.insert(3);
    mySet.insert(4);
    mySet.insert(5);
    return 0;
}

在上述示例代码中,我们定义了一个名为mySet的无序向量集,并使用insert函数插入5个整数元素。

删除元素

我们可以使用erase函数从无序向量集中删除元素,该函数的时间复杂度为常数级别。以下是从无序向量集中删除元素的示例代码:

#include <iostream>
#include <unordered_set>

using namespace std;

int main() {
    unordered_set<int> mySet;

    for (int i = 1; i <= 5; i++) {
        mySet.insert(i);
    }

    mySet.erase(2);
    mySet.erase(4);

    return 0;
}

在上述示例代码中,我们首先向无序向量集中插入了5个整数元素,然后使用erase函数删除了其中的2和4。

查找元素

我们可以使用find函数在无序向量集中查找元素,该函数的时间复杂度为平均常数级别,最坏为线性级别。以下是在无序向量集中查找元素的示例代码:

#include <iostream>
#include <unordered_set>

using namespace std;

int main() {
    unordered_set<int> mySet;

    for (int i = 1; i <= 5; i++) {
        mySet.insert(i);
    }

    if (mySet.find(3) != mySet.end()) {
        cout << "Element found\n";
    } else {
        cout << "Element not found\n";
    }

    return 0;
}

在上述示例代码中,我们首先向无序向量集中插入了5个整数元素。然后,我们在无序向量集中查找整数值为3的元素。如果元素存在,则打印“Element found”,否则打印“Element not found”。

遍历元素

我们可以使用迭代器来遍历无序向量集中的元素。以下是使用迭代器遍历无序向量集中的元素的示例代码:

#include <iostream>
#include <unordered_set>

using namespace std;

int main() {
    unordered_set<int> mySet;

    for (int i = 1; i <= 5; i++) {
        mySet.insert(i);
    }

    for (auto it = mySet.begin(); it != mySet.end(); it++) {
        cout << *it << " ";
    }
    return 0;
}

在上述示例代码中,我们首先向无序向量集中插入了5个整数元素。然后,我们使用begin()函数获取迭代器指向集合开头的元素,使用end()函数获取迭代器指向集合结尾的元素。最后,我们使用*操作符展开迭代器并打印每一个元素。

结论

C++中,无序向量集是一个快速、高效的容器,比有序向量集更适合于插入和查找操作。我们可以使用unordered_set来定义无序向量集,并使用inserterase"、findbeginend`函数对它进行插入、删除、查找和遍历元素。在实际编程中,我们可以根据实际需要灵活地使用无序向量集。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程