AI大模型教程
一起来学习

C++中的unordered_map容器(本文搬运AI写作)

        unordered_map 是 C++ 标准模板库(STL)中的一个关联容器,它用于存储键值对,其中每个键都是唯一的。与 map 不同,unordered_map 不保证元素按照键的顺序排列,而是基于哈希表实现,这使得它在平均情况下对于查找、插入和删除操作具有常数时间复杂度 O(1)。以下是关于 unordered_map 详细的用法介绍: 

1. 包含头文件

        在使用 unordered_map 之前,需要包含相应的头文件:

#include 

2. 定义和初始化

        可以使用多种方式定义和初始化 unordered_map

#include 
#include 
#include 

int main() {
    // 定义一个空的 unordered_map,键为 string 类型,值为 int 类型
    std::unordered_map myMap;

    // 初始化时插入元素
    std::unordered_map myMap2 = {
        {"apple", 1},
        {"banana", 2},
        {"cherry", 3}
    };

    return 0;
}

3. 插入元素

        可以使用以下几种方式向 unordered_map 中插入元素:

#include 
#include 
#include 

int main() {
    std::unordered_map myMap;

    // 使用 insert 函数插入元素
    myMap.insert({"apple", 1});

    // 使用 [] 运算符插入元素,如果键不存在则创建新元素
    myMap["banana"] = 2;

    // 使用 emplace 函数插入元素,效率更高
    myMap.emplace("cherry", 3);

    return 0;
}

4. 访问元素

        可以使用 [] 运算符或 at() 函数来访问 unordered_map 中的元素:

#include 
#include 
#include 

int main() {
    std::unordered_map myMap = {
        {"apple", 1},
        {"banana", 2},
        {"cherry", 3}
    };

    // 使用 [] 运算符访问元素,如果键不存在会插入一个默认值
    std::cout 

5. 查找元素

        可以使用 find() 函数来查找 unordered_map 中是否存在某个键:

#include 
#include 
#include 

int main() {
    std::unordered_map myMap = {
        {"apple", 1},
        {"banana", 2},
        {"cherry", 3}
    };

    auto it = myMap.find("banana");
    if (it != myMap.end()) {
        std::cout second 

6. 删除元素

        可以使用 erase() 函数来删除 unordered_map 中的元素:

#include 
#include 
#include 

int main() {
    std::unordered_map myMap = {
        {"apple", 1},
        {"banana", 2},
        {"cherry", 3}
    };

    // 删除指定键的元素
    myMap.erase("banana");

    // 删除迭代器指向的元素
    auto it = myMap.find("cherry");
    if (it != myMap.end()) {
        myMap.erase(it);
    }

    return 0;
}

7. 遍历元素

        可以使用范围 for 循环或迭代器来遍历 unordered_map 中的元素:

#include 
#include 
#include 

int main() {
    std::unordered_map myMap = {
        {"apple", 1},
        {"banana", 2},
        {"cherry", 3}
    };

    // 使用范围 for 循环遍历
    for (const auto& pair : myMap) {
        std::cout first second 

8. 其他常用函数

   通过上述介绍,你应该对 unordered_map 的基本用法有了较为全面的了解,可以根据具体需求灵活运用它来解决实际问题。

  • size():返回 unordered_map 中元素的数量。
  • empty():检查 unordered_map 是否为空。
  • clear():清空 unordered_map 中的所有元素。
  • #include 
    #include 
    #include 
    
    int main() {
        std::unordered_map myMap = {
            {"apple", 1},
            {"banana", 2},
            {"cherry", 3}
        };
    
        std::cout 

    注意事项

  • unordered_map 的键类型必须定义了 == 运算符,因为哈希表需要比较键是否相等。
  • 哈希函数和相等比较函数可以自定义,以满足特殊需求。例如,当键是自定义类型时,需要提供自定义的哈希函数和相等比较函数。

文章来源于互联网:C++中的unordered_map容器(本文搬运AI写作)

相关推荐: stable diffusion最推荐安装的几个模型

stable diffusion(稳定扩散)(简称SD)正在席卷世界,让任何人都可以使用各种风格的人工智能技术生成图像。只需点击几个按钮,您就可以生成一个人的照片级真实感图像,或一幅高精度的风景数字插图。通过使用精心制作的提示和特定的训练模型,您可以创建可用于…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » C++中的unordered_map容器(本文搬运AI写作)
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们