C++ 有没有办法以同样的效率组合这个列表和映射?

标签 c++ list dictionary

我现在有这样的代码,例如:

list <string> names = {"John", "Peter", "Sarah", "Tom"};
map <string, int> age = {{"John", 64}, {"Peter", 32}, {"Sarah", 24}, {"Tom", 25"};

我需要年龄映射,这样我就可以在某一时刻根据字符串名称查找年龄。我需要名单,这样我就可以在不同的点按添加的顺序遍历这些名字。

那么有没有什么方法可以将此功能合并为一个,这样我就不必重复名称字符串的声明,因为名称字符串在两个列表中都是相同的。但是保持完全相同的效率?

感谢您的帮助。

最佳答案

这里有很多选项。

  • 不要将年龄与姓名一起存储,保留 2 个不同的列表并使用共享索引来访问姓名/年龄对。请记住,对于这个列表,您需要注意列表的大小不能不同,因为这可能会导致一些严重的错误。

  • 创建一个包含姓名和年龄的结构,并将它们存储在容器(列表、 vector 等)中。

关于C++ 有没有办法以同样的效率组合这个列表和映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56601396/

相关文章:

python - 根据数组值的最大总和对字典进行排序

Python 字典和选择大小写

java - 如何通过 Qt JNI 将 null 从 C++ 传递到 Java?

c++ - 具有未初始化指针的类是否具有未定义的行为?

python - 太多的静态嵌套 block python

具有事件元素的 Css 嵌套列表以填充整行

c++ - 删除标准库映射

c++ - #ifndef 和#pragma once 有什么区别, "same file"是什么意思?

c++ - 给定一棵二叉搜索树,找到出现次数最多的节点

python - 如何使用递归计算嵌套列表的最大长度?