在C ++ STL中遍历映射(或unordered_map)

在这里,我们将看到映射容器及其在C ++中的用法。映射定义为以哈希映射方式存储元素的关联容器。每个元素都与一个键和一个值相关联。任何两个映射值都不能具有相同的键。这些是C ++中的映射容器内部提供的一些基本方法。

begin():这会将迭代器返回到映射中的第一个元素。

end() -这将返回迭代器到映射中最后一个元素之后的理论元素。

size() -这将返回映射中的元素数量。

max_size() -返回映射可以容纳的最大元素数。

empty() -返回映射是否为空。

示例

让我们看下面的实现以更好地理解-

#include <bits/stdc++.h>
using namespace std;
int main() {
   int A[] = { 2, 2, 3, 2, 2, 4, 5, 4 };
   int num = sizeof(A) / sizeof(A[0]);
   map<int, int> my_map;
   for (int p = 0; p < num; p++)
      my_map[A[p]]++;
   cout <<"Item Frequency"<< endl;
   for (auto p : my_map)
      cout << p.first <<" : "<< p.second << endl;
}

输出结果

Item Frequency
2 : 4
3 : 1
4 : 2
5 : 1

unordered_map 是在C ++ STL另一类型的映射容器本的。这是一个关联的容器,用于收集或存储由键值对组合形成的元素。该键用于唯一标识值。在这种情况下,键和值都可以是预定义或用户定义的任何类型。

示例

让我们看下面的实现以更好地理解-

#include <bits/stdc++.h>
using namespace std;
int main() {
   int A[] = { 2, 2, 3, 2, 2, 4, 5, 4 };
   int num = sizeof(A) / sizeof(A[0]);
   unordered_map<int, int> my_map;
   for (int p = 0; p < num; p++)
      my_map[A[p]]++;
   cout <<Item Frequency"<< endl;
   for (auto p : my_map)
      cout << p.first <<" : "<< p.second << endl;
}

输出结果

Item Frequency
5 : 1
4 : 2
2 : 4
3 : 1