我现在有这样的代码,例如:
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/