大学网 > php中文网 > 后端开发C++ 函数的 STL 函数有哪些用于哈希表?正文

C++ 函数的 STL 函数有哪些用于哈希表?

中国大学网 2024-10-17

C++++ stl 中的哈希表函数可快速查找键值对,包括:std::unordered_map:未排序哈希表,存储键值对std::unordered_multimap:未排序多值哈希表,一个键可对应多个值std::unordered_set:未排序哈希表,仅存储键,无关联值std::unordered_multiset:未排序多值哈希表,允许存储重复键

C++ 的 STL 函数:哈希表

介绍

哈希表是一种数据结构,它通过将键值对存储在数组中,使用哈希函数将其映射到键,来实现快速寻址。C++ 标准模板库 (STL) 提供了多种 STL 函数用于创建和操作哈希表。

立即学习“C++免费学习笔记(深入)”;

std::unordered_map

std::unordered_map 是一个未排序的哈希表,它使用键值对的形式存储元素。其主要函数包括:

  • insert():插入一个键值对到哈希表中。
  • find():查找一个键并返回其对应的值。
  • erase():从哈希表中删除一个键。
  • clear():清除哈希表中的所有元素。

std::unordered_multimap

std::unordered_multimap 与 std::unordered_map 类似,但它允许一个键对应多个值(多值映射)。

std::unordered_set

std::unordered_set 是一种未排序的哈希表,它只存储键,而不存储值。其主要函数包括:

  • insert():插入一个键到哈希表中。
  • find():查找一个键。
  • erase():从哈希表中删除一个键。
  • clear():清除哈希表中的所有键。

std::unordered_multiset

std::unordered_multiset 与 std::unordered_set 类似,但它允许存储重复键。

实战案例

#include 
#include 

int main()
{
    // 创建一个 std::unordered_map
    std::unordered_map myMap;

    // 插入键值对
    myMap["Alice"] = 25;
    myMap["Bob"] = 30;

    // 查找一个键
    int age = myMap["Alice"];
    std::cout << "Alice's age: " << age << std::endl;

    // 移除键
    myMap.erase("Bob");

    // 遍历哈希表
    for (auto it = myMap.begin(); it != myMap.end(); ++it) {
        std::cout << it->first << " -> " << it->second << std::endl;
    }

    return 0;
}

输出:

Alice's age: 25
Alice -> 25

以上就是C++ 函数的 STL 函数有哪些用于哈希表?的详细内容,更多请关注中国大学网其它相关文章!