【发布时间】:2019-09-29 08:24:36
【问题描述】:
我正在尝试用 C++ 初始化一个 Maps 数组,但遇到了麻烦。
我希望数组的每个元素都包含一个整数(键)和字符串(值)对,所以我认为 Maps 数组是个好主意,但我无法弄清楚如何初始化。
map <int, string> * myArray;
有效,但以下无效:
myArray = new map <int, string> [10];
我不知道为什么。
我无法找到这方面的参考资料,因为我热衷于在我的代码中使用数组,而不是 Vector,它的文档记录要好得多。非常感谢任何指导。
【问题讨论】:
-
std::map<int,double>* maps = new std::map<int,double>[10];应该编译。请发布您正在使用的确切代码及其给您的错误。 “不起作用”是没用的。 -
如果你的数组中的每个元素都只是一个键值对,那么映射是从哪里来的呢?根据你的第二句话,你想要一个
std::pair<int, std::string>[N]。此外,没有太多理由更喜欢数组而不是向量。你的是什么? -
你的代码编译了,你为什么说它没有编译?但是请注意,地图不仅仅是一对。你需要一个地图,一个地图数组还是一对数组?目标是什么(不谈解决方案)?
-
我热衷于在我的代码中使用数组——无需使用哑数组或指针。
std::array<std::map<int, std::string>, 10> myArray;
标签: c++ arrays hashmap priority-queue abstract-data-type