c++ - 访问作为 vector 对的 map 值 C++

标签 c++

我有一张由以下人员声明的 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在那vectorvector没有.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/

相关文章:

c++ - 错误:数组下标高于 std::vector::insert 的数组边界

c++ - 通过套接字发送和接收原始结构不安全吗?

c++ - 替换文件扩展名时崩溃

c++ - 查找特定年份和闰年的特定日期

C++ - 为我的字符串类重载运算符 >>

c++ - 如何使用 typedef 为 C++ 数组起别名?

c++ - 如何实例化 std::exception_ptr 以进行单元测试

c++ - CreateFont、DeleteObject 和 GDI 句柄/内存泄漏

c++ - 共享对象符号解析

c++ - 在 Windows 下使用 system() 命令的问题