炮炮轰 2024-04-29 17:15 采纳率: 0%
浏览 3

C++关于map容器的访问方式的问题

img

img

在B站黑马程序员的C++视频中,P279 分P 查看记录功能这个功能的实现时,up主使用了双中括号类似于二维数组的索引方式来访问了map容器(也就是图中的m_Record<int,vector>),请问map的键值对不是只能用key来访问value吗,为什么可以这样访问?

  • 写回答

5条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-04-29 17:15
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    答:在C++ STL中,map是使用红黑树实现的关联容器,其中的键值对是按照键的大小自动排序存储的。但是,在map中,每个键对应的值并不是一个简单的数据类型,而是一个如vector、list、map等容器类型的对象,这个对象本身就可以像数组一样通过下标访问其中的元素。因此,可以使用双中括号类似于二维数组的索引方式来访问map容器中的vector对象,即在第一个中括号中输入键值,第二个中括号中输入下标即可访问相应元素。 例如,以下代码演示了如何使用双中括号访问vector类型的键值对:
    #include <iostream>
    #include <map>
    #include <vector>
    using namespace std;
    int main() {
        map<int, vector<int>> myMap = {{1, {10, 20, 30}}, {2, {40, 50, 60}}};
        cout << myMap[1][0] << endl; // 输出 10
        cout << myMap[2][2] << endl; // 输出 60
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月29日

悬赏问题

  • ¥15 没输出运行不了什么问题
  • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
  • ¥15 点云密度大则包围盒小
  • ¥15 nginx使用nfs进行服务器的数据共享
  • ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
  • ¥15 51嵌入式入门按键小项目
  • ¥30 海外项目,如何降低Google Map接口费用?
  • ¥15 fluentmeshing
  • ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
  • ¥15 盘古气象大模型调用(python)