访问作为向量对的地图值C ++

时间:2018-09-26 12:38:46

标签: c++

我有一张声明为

的地图
map <string, vector<pair<int, string>>>;

当我遍历地图时,我想访问向量中的数据以打印出来并对其进行操作,我一直在尝试使用myMap.at(string1).first来访问与键{{1}相关联的整数},但我不断收到类型错误。有人可以解释从其向量键访问此向量对中数据的最佳方法吗?

1 个答案:

答案 0 :(得分:2)

给出:

map <string, vector<pair<int, string>>> myMap;

该:

myMap.at(string1).first

显然不应该编译。 myMap.at()(如果成功与关联值匹配)将为您提供vector。您正在尝试在该.first上使用vectorvector个没有.first和此类成员。也许您反而想要:

map <string, pair<int, string>> myMap;

如果您确定要使用原始数据类型,则访问与string1关联的第一对将是:

myMap.at(string1).at(0).first

这将获取与vector<pair<int, string>>关联的string1,并在该向量的第一对中为您提供第一元素