21xrx.com
2025-04-13 11:00:22 Sunday
文章检索 我的文章 写文章
C++的unordered_map使用方法
2023-07-10 14:50:18 深夜i     22     0
C++ unordered_map 使用方法

C++的unordered_map是一种基于哈希表实现的关联容器,它提供了快速的查找和插入操作。在使用时,我们需要了解如何定义unordered_map对象、如何访问和修改其中的元素以及如何进行遍历。

1.定义unordered_map对象

我们可以使用下面的语句来定义一个unordered_map对象:

#include <unordered_map>
using namespace std;
unordered_map<key_type, value_type> map_name;

其中,key_type指的是键的类型,value_type指的是值的类型,map_name是unordered_map对象的名称。

例如:

#include <unordered_map>
#include <string>
using namespace std;
unordered_map<string, int> umap;

上面的代码定义了一个名为umap的unordered_map对象,其中键的类型为string,值的类型为int。

2.访问和修改元素

我们可以使用下面的语句来访问和修改unordered_map对象中的元素:

map_name[key] = value;
value_type value = map_name[key];

其中,key是键,value是要插入的值或者要读取的值。

例如:

#include <unordered_map>
#include <string>
using namespace std;
int main()
{
  unordered_map<string, int> umap;
  umap["apple"] = 10;
  umap["banana"] = 5;
  cout << umap["apple"] << endl; // 输出10
  cout << umap["banana"] << endl; // 输出5
  umap["apple"] = 20;
  cout << umap["apple"] << endl; // 输出20
  return 0;
}

上面的代码使用了[]操作符来访问和修改unordered_map对象中的元素。

3.遍历unordered_map对象

我们可以使用迭代器来遍历unordered_map对象中的元素。具体方法如下:

for (auto it = map_name.begin(); it != map_name.end(); ++it)
  key_type key = it->first;
  value_type value = it->second;
  // 对每个元素进行操作

其中it是指向unordered_map对象中元素的迭代器,it->first和it->second分别是键和值。

例如:

#include <unordered_map>
#include <string>
#include <iostream>
using namespace std;
int main()
{
  unordered_map<string, int> umap;
  umap["apple"] = 10;
  umap["banana"] = 5;
  for (auto it = umap.begin(); it != umap.end(); ++it)
    string key = it->first;
    int value = it->second;
    cout << key << " " << value << endl;
  
  return 0;
}

上面的代码遍历了unordered_map对象umap中的所有元素,并输出了键和值。

综上所述,unordered_map是一种非常实用的数据结构,可以用于存储键值对。要使用它,我们需要了解如何定义unordered_map对象、如何访问和修改其中的元素以及如何进行遍历。

  
  

评论区

请求出错了