c++ - 如何在 C++ 中初始化 Maps 数组?
问题描述
我正在尝试用 C++ 初始化一个 Maps 数组,但遇到了麻烦。
我希望数组的每个元素都包含一个整数(键)和字符串(值)对,所以我认为 Maps 数组是个好主意,但我无法弄清楚如何初始化.
map <int, string> * myArray;
有效,但以下无效:
myArray = new map <int, string> [10];
我不知道为什么。
我无法找到这方面的参考资料,因为我热衷于在我的代码中使用数组,而不是 Vector,它的文档记录要好得多。将不胜感激任何指导。
解决方案
您发布的代码很好,应该可以编译。
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);
推荐阅读
- c++ - 如何使线程运行现有的类函数?C++
- ios - iOS 开发证书过期对分发配置文件有什么影响?
- python - 如何使用 newick 格式的树字符串 [Python] 正确更新空的 ete3.Tree 对象?
- unity3d-editor - 为统一 3d 编辑器编写代码并加载 json 数据文件,但在统一编辑器中出现错误
- c# - 如何首先在数据库中自动应用查询类型(Scaffold-DbContext)而不会在重新生成时丢失它们?
- sql - SQL Server - 如果是新行,则插入行;如果存在则更新
- python - 优化大型级联文件/循环的脚本以从文件列表中丢弃有缺陷的项目
- php - laravel php 工匠迁移
- rest - 通过未格式化的电话号码搜索 Microsoft Dynamics Rest Api 记录
- validation - 在架构中允许未知键但经过验证的值