我有一张声明为
的地图map <string, vector<pair<int, string>>>;
当我遍历地图时,我想访问向量中的数据以打印出来并对其进行操作,我一直在尝试使用myMap.at(string1).first
来访问与键{{1}相关联的整数},但我不断收到类型错误。有人可以解释从其向量键访问此向量对中数据的最佳方法吗?
答案 0 :(得分:2)
给出:
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
,并在该向量的第一对中为您提供第一元素。