21xrx.com
2024-12-22 21:54:48 Sunday
登录
文章检索 我的文章 写文章
C++中unordered_map的使用
2023-07-04 22:54:50 深夜i     --     --
C++ unordered_map 使用

C++中的unordered_map是一个非常有用的数据结构,它可以帮助我们快速地找到任意键对应的值。在大多数情况下,unordered_map比std::map更为高效。

unordered_map是一个关联容器,它是一种哈希表,其中键值对存储在无序集合中。unordered_map通过使用哈希函数将键映射到哈希表中的一个桶中,然后在桶中搜索键的值。与std::map不同,unordered_map不会对其键进行排序。

unordered_map的使用非常简单。我们可以像下面这样创建一个unordered_map:


unordered_map<string, int> map;

创建的这个unordered_map将会拥有一个字符串类型的键和整数类型的值。我们可以向unordered_map中插入数据:


map.insert( 1);

我们可以使用unordered_map的at()函数来查找一个键所对应的值:


int value = map.at("apple");

我们也可以使用[]运算符来访问unordered_map中的元素:


int value = map["apple"];

在使用[]运算符时,如果键不存在,unordered_map会自动为其创建一个默认值。因此,在使用[]运算符时一定要注意不要访问不存在的键,否则会导致不可预测的行为。

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


map.erase("apple");

我们还可以使用其他函数来遍历unordered_map中的元素,如begin()和end()函数。我们可以使用迭代器来遍历unordered_map:


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

  std::cout << it->first << ": " << it->second << std::endl;

在本例中,迭代器it指向unordered_map中的每个键值对。我们可以使用箭头运算符来访问它们的键和值。在这里,it->first将返回键,而it->second将返回对应的值。

总而言之,unordered_map是C++中非常有用的一个容器,它在大多数情况下比std::map更为高效。如果我们需要在一组数据中快速地找到任意一个键对应的值,那么unordered_map是一个不错的选择。

  
  
下一篇: C++单例类实现

评论区

{{item['qq_nickname']}}
()
回复
回复