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