unordered_map 关联容器

今天在做滑动窗口的题的时候,发现都用了这个unordered_map,下面我总结了相关知识点

  1. 定义和声明:

    • std::unordered_map 是 C++ 中的一种关联容器,用于存储键-值对,其中键是唯一的。
    • 可以使用 #include 引入头文件。
  2. 基本操作:

    • 插入键值对:map[key] = value;,如果键不存在,将会被创建。
    • 访问元素:value = map[key];,如果键不存在,会创建一个具有默认值的元素。
    • 删除元素:map.erase(key);
    • 检查元素是否存在:map.find(key) != map.end();
    • 获取容器大小:map.size();
  3. 遍历元素:

    • 使用范围-based for 循环:
      for (const auto& pair : map) {
          // pair.first 是键,pair.second 是值
      }
      
  4. 注意事项:

    • 元素在 std::unordered_map 中是无序的,遍历顺序不一定是插入的顺序。
    • 通过 [] 访问元素时,如果键不存在,将会插入一个默认构造的值(例如,int 类型对应的默认值是0)。
  5. 对值的递增操作:

    • 使用 ++map[key]; 可以对键对应的值进行递增。如果键不存在,会被创建并初始化为0。

    //这里尤其注意,map[]里面的key 并不是索引,而是

  6. 性能:

    • std::unordered_map 提供了快速的查找和插入操作,平均情况下的时间复杂度为 O(1)。
  7. 示例代码:

    #include 
    #include 
    
    int main() {
        std::unordered_map map;
        map[1] = 10;
        map[2] = 20;
    
        for (const auto& pair : map) {
            std::cout << pair.first << ": " << pair.second << std::endl;
        }
    
        return 0;
    }
    

你可能感兴趣的:(哈希算法,算法)