C ++有没有办法以相同的效率组合此列表和映射?

Fel*_*apo 2 c++ dictionary list

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

list <string> names = {"John", "Peter", "Sarah", "Tom"};
map <string, int> age = {{"John", 64}, {"Peter", 32}, {"Sarah", 24}, {"Tom", 25"};
Run Code Online (Sandbox Code Playgroud)

我需要年龄图,这样我就可以在某一时刻根据字符串名称查询年龄。而且我需要名称列表,以便可以在其他位置按添加的顺序浏览名称。

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

谢谢您的帮助。

Ian*_*Ian 6

这里有许多选项。

  • 不要用名字存储年龄,保留2个不同的列表,并使用共享索引访问名字/年龄对。请记住,使用此列表时,您需要注意列表的大小不要不同,因为这可能会导致一些讨厌的错误。

  • 创建一个包含名称和年龄的结构,并将其存储在容器(列表,向量等)中。