遍历 C++ STL 中的映射(或无序映射)


在此我们将看到映射容器及其在 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

更新日期:2020-08-27

2千+ 浏览量

职业起步

完成课程获得认证

开始学习
广告