C++ STL 中的 unordered_set erase () 函数

C++ STL 中的 unordered_set erase () 函数

C++ STL 中,unordered_set是一个哈希表实现的集合容器,具有高效的查找和插入性能。而erase函数是unordered_set容器中的一个成员函数,用于删除unordered_set容器中指定值的元素,本篇文章将介绍unordered_seterase函数以及应用示例。

unordered_set erase() 函数的语法格式

erase函数被定义为 unordered_set 容器的一个成员函数,其语法格式如下:

size_type erase ( const key_type& key );

erase函数接收一个key值作为参数,返回被删除元素的数量。如果容器中不存在该key值,返回值为0。

unordered_set erase() 函数的使用示例

下面我们通过几个实例来介绍erase函数的使用方式。

例1:删除 unordered_set 中的某个元素

#include <iostream>
#include <unordered_set>

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

    std::cout << "unordered_set before erase:";
    for(int x: my_set) std::cout << ' ' << x;
    std::cout << '\n';

    my_set.erase(3);

    std::cout << "unordered_set after erase:";
    for(int x: my_set) std::cout << ' ' << x;
    std::cout << '\n';

    return 0;
}

输出结果为:

unordered_set before erase: 5 1 4 2 3
unordered_set after erase: 5 1 4 2

例2:删除 unordered_set 中多个元素

#include <iostream>
#include <unordered_set>

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

    std::cout << "unordered_set before erase:";
    for(int x: my_set) std::cout << ' ' << x;
    std::cout << '\n';

    my_set.erase(2);
    my_set.erase(4);

    std::cout << "unordered_set after erase:";
    for(int x: my_set) std::cout << ' ' << x;
    std::cout << '\n';

    return 0;
}

输出结果为:

unordered_set before erase: 5 1 4 2 3
unordered_set after erase: 5 1 3

例3:删除 unordered_set 中不存在的元素

#include <iostream>
#include <unordered_set>

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

    std::cout << "unordered_set before erase:";
    for(int x: my_set) std::cout << ' ' << x;
    std::cout << '\n';

    if(my_set.erase(6)) {
        std::cout << "6 has been erased.\n";
    } else {
        std::cout << "6 is not found in the unordered_set.\n";
    }

    std::cout << "unordered_set after erase:";
    for(int x: my_set) std::cout << ' ' << x;
    std::cout << '\n';

    return 0;
}

输出结果为:

unordered_set before erase: 5 1 4 2 3
6 is not found in the unordered_set.
unordered_set after erase: 5 1 4 2 3

unordered_set erase() 函数的注意点

在使用erase函数时应注意以下事项:

  • unordered_seterase函数删除的是指定key值的元素,如果想删除容器中的元素,需要使用迭代器(iterator);
  • 如果unordered_set中不存在指定key值,则erase函数返回值为0。

结论

unordered_seterase函数提供了一种方便的方法删除指定元素。在使用时应注意函数的参数和返回值,避免不必要的开销。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程