C++函数的STL映射具体有哪些

2025-01-09 03:18:03   小编

C++函数的STL映射具体有哪些

在C++编程中,标准模板库(STL)提供了丰富的容器和算法,其中映射(map)是一种非常有用的数据结构。映射提供了一种键值对的存储方式,允许快速查找和访问数据。下面将介绍C++函数中常见的STL映射。

1. std::map

std::map 是最常用的映射容器之一。它基于红黑树实现,能够自动按照键的升序排列键值对。这使得在查找、插入和删除操作时具有较好的时间复杂度,通常为对数时间O(log n)。

示例代码如下:

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap[1] = "one";
    myMap[2] = "two";

    for (const auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

2. std::unordered_map

std::unordered_map 是基于哈希表实现的映射容器。它不保证键值对的顺序,但在平均情况下,查找、插入和删除操作的时间复杂度为常数时间O(1)。然而,在最坏情况下,时间复杂度可能会退化为线性时间O(n)。

示例代码如下:

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<int, std::string> myUnorderedMap;
    myUnorderedMap[1] = "one";
    myUnorderedMap[2] = "two";

    for (const auto& pair : myUnorderedMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

3. std::multimap

std::multimapstd::map 类似,但它允许一个键对应多个值。也就是说,std::multimap 中可以存在多个具有相同键的键值对。

4. std::unordered_multimap

std::unordered_multimapstd::unordered_map 的多值版本,同样基于哈希表实现,允许一个键对应多个值。

C++的STL提供了多种映射容器,开发者可以根据具体的需求选择合适的映射类型。如果需要有序的键值对存储,可选择 std::mapstd::multimap;如果更注重查找效率且不关心顺序,std::unordered_mapstd::unordered_multimap 可能是更好的选择。

TAGS: C++函数 C++ STL STL映射 函数映射

欢迎使用万千站长工具!

Welcome to www.zzTool.com