21xrx.com
2024-11-05 19:39:35 Tuesday
登录
文章检索 我的文章 写文章
C++无序映射(unordered_map)
2023-06-22 14:52:25 深夜i     --     --
C++ 无序映射 unordered_map 哈希表 STL容器

在C++中,与映射相对应的是无序映射(unordered_map)。与映射不同,无序映射的元素是没有顺序的,但是,这种数据结构的特殊性使得它能够在一些特定场合下更好地发挥作用。

无序映射的元素是通过哈希值存储的,在查找元素时,C++会首先使用哈希函数计算出元素的哈希值,然后再到相应的桶中查找元素。由于哈希函数可以快速地计算出元素的位置,因此无序映射的查找速度通常比映射更快。

在C++中,使用无序映射需要包含头文件#include 。与映射类似,无序映射也是一个STL容器,提供了许多成员函数,用于插入、删除、查找元素以及遍历映射中的元素。

无序映射的插入操作可以使用insert()函数,例如:


std::unordered_map<std::string, int> maps;

maps.insert(std::make_pair("张三", 19));

maps.insert(std::make_pair("李四", 21));

无序映射的查找操作可以使用find()函数,例如:


auto it = maps.find("张三");

if(it != maps.end())

 std::cout << "张三的年龄是" << it->second << std::endl;

无序映射也支持通过迭代器来遍历容器中的元素,例如:


for(auto it = maps.begin(); it != maps.end(); it++)

 std::cout << it->first << "的年龄是" << it->second << std::endl;

无序映射的删除操作可以使用erase函数,例如:


maps.erase("张三");

总结

无序映射在一些需要快速查找、插入、删除元素的场合中十分有用,它的哈希函数可以快速地计算出元素的位置,从而提高查找效率。在使用无序映射时要注意,由于元素的位置是根据哈希值计算的,因此无序映射的元素没有顺序,无序映射也不能够对元素进行排序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章