我有一张由以下人员声明的 map
map <string, vector<pair<int, string>>>;
当我迭代 map 时,我想访问 vector 中的数据以打印出来并进行操作,我一直在尝试使用 myMap.at(string1).first
来访问与键 string1
关联的整数,但我不断收到类型错误。有人可以解释从其 key 访问该 vector 对中的数据的最佳方法吗?
最佳答案
给定:
map <string, vector<pair<int, string>>> myMap;
:
myMap.at(string1).first
显然不应该编译。 myMap.at()
,如果与关联值成功匹配,将为您提供 vector
。您正在尝试使用.first
在那vector
。 vector
没有.first
以及这样的成员。也许您想要:
map <string, pair<int, string>> myMap;
如果您确定需要原始数据类型,请访问与 string1
关联的第一对将是:
myMap.at(string1).at(0).first
这将获取 vector<pair<int, string>>
与 string1
相关并给出该 vector 的第一对中的第一个元素。
关于c++ - 访问作为 vector 对的 map 值 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52517963/