C++ 访问地图';s值,即向量对C++;

C++ 访问地图';s值,即向量对C++;,c++,C++,我有一张地图 map <string, vector<pair<int, string>>>; map; 当我遍历映射时,我想访问向量中的数据以打印出来并对其进行操作,我一直在尝试使用myMap.at(string1)。首先访问与键string1关联的整数,但我不断得到类型错误。有人能解释一下从其密钥访问此向量对中数据的最佳方式吗?给定: map <string, vector<pair<int, string>>> m

我有一张地图

map <string, vector<pair<int, string>>>;
map;
当我遍历映射时,我想访问向量中的数据以打印出来并对其进行操作,我一直在尝试使用
myMap.at(string1)。首先
访问与键
string1
关联的整数,但我不断得到类型错误。有人能解释一下从其密钥访问此向量对中数据的最佳方式吗?

给定:

map <string, vector<pair<int, string>>> myMap;
显然不应该编译
myMap.at()
,如果与相关值成功匹配,将为您提供一个
向量。您正在尝试对该
向量使用
.first
vector
s没有
。first
和此类成员。也许你想要:

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

这将获取与
string1
相关联的
向量
,并为您提供该向量第一对中的第一个元素。

当您使用
myMap时。在(string1)
处,您得到的是
向量
而不是
,因为您在映射中放置了向量(而不是对)。您从
myMap[someString]中得到了什么
不是整数。这是一对向量。你到底想干什么?你能不能创建一个给我们看(包括你得到的实际错误,完整的和完整的)。谢谢,at(0)是我遗漏的没有问题。考虑通过点击投票下面的嘀嗒按钮来接受这个答案,这样这个问题的未来访问者会知道这个答案确实解决了你的问题。
map <string, pair<int, string>> myMap;
myMap.at(string1).at(0).first