首页 > 解决方案 > 如何在 C++ 中初始化 Maps 数组?

问题描述

我正在尝试用 C++ 初始化一个 Maps 数组,但遇到了麻烦。

我希望数组的每个元素都包含一个整数(键)和字符串(值)对,所以我认为 Maps 数组是个好主意,但我无法弄清楚如何初始化.

map <int, string> * myArray; 

有效,但以下无效:

myArray = new map <int, string> [10];

我不知道为什么。

我无法找到这方面的参考资料,因为我热衷于在我的代码中使用数组,而不是 Vector,它的文档记录要好得多。将不胜感激任何指导。

标签: c++arrayshashmappriority-queueabstract-data-type

解决方案


您发布的代码很好,应该可以编译。

map <int, string> * myArray = new map<int, string>[10];

此默认值在堆上构造 10 个映射,但您在问题中说您希望 ARRAY 的每个元素都保存一个键和一个值。请注意,地图不是数组,它们的实现和使用非常不同。

我认为您可能正在寻找的东西是

pair<int, string>* myArray = new pair<int, string>[10];
// or alternatively
vector<pair<int, string>> myArray(10);

推荐阅读