首页 > 编程语言 >C转C++速成浅入浅出系列——STL之map

C转C++速成浅入浅出系列——STL之map

时间:2024-01-25 14:57:02浏览次数:37  
标签:map cout 浅入 value 获取 键值 C++ key

本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。

map

【map:地图、图谱】

理解为地图(我感觉跟python的字典【dictionary】一样)。一个map中包含了多个键值对,一个键值对可以理解为一个特殊的结构体

键值对:即包含关键字(即key)和值(即value或data)的一个“对”。故称为键值对。

需提供头文件#include <map>。

 

创建

不用指定长度。尖括号内第一个是key的数据类型,第二个是value的数据类型。

1 map <string,int> m1;
2 map <string,string> m2;

 

添加

类似于python的字典,如果只用C说的话,应该从数组上进行扩展理解。

1 m1["我家门高"] = 7;
2 m2["我家门材质"] = "铝合金";

 

访问

可以由键值对的键值获取此键值对应的值。因此,键和值之间可以具有一对一、多对一的关系。(没有一对多)

如果存在该键,则返回该键对应的值;如果不存在该键,则返回0。

1 cout << m1["我家门高"];

 

遍历

使用迭代器进行遍历。同时因为迭代器的p会遍历一个map中的所有元素指针(每个元素都是一个键值对【可以理解为结构体】,包含key和value两个值;key是键值对结构体的first变量,value是键值对结构体的second变量),因此可以利用迭代器获取该map中所有的键和值。

for(auto p=m.begin();p!=end();p++){
    //p为指针,故用箭头;键可用first获取,值可用second获取
    cout << "键" << p->first << "对应的值为" << p->second;
}

 

获取长度

使用.size()方法获取map的长度。

cout << m1.size();

标签:map,cout,浅入,value,获取,键值,C++,key
From: https://www.cnblogs.com/Jianxian/p/17986959

相关文章

  • C语言和C++中的空指针区别
    C语言中,空指针是NULL,是一个宏在C++中NULL似乎也可以用,但是C++中的NULL其实是有问题的。C++大佬在设计的时候可能没有考虑全面在C++98中,字面常量0既可以是一个整形数字,也可以是无类型的指针(void*)常量但是编译器默认情况下将其看成是一个整形常量,如果要将其按照指针方式来使......
  • 深入解析C++中sizeof和strlen的奥秘:区别、应用与技巧全揭秘!
     sizeof 和 strlen 是C++中用于处理字符串的两个不同的操作符,它们的作用和使用场景有很大的区别。sizeof操作符:区别:sizeof 是一个运算符,不是一个函数,用于获取一个类型或变量的字节大小。对于数组,sizeof 返回整个数组的字节大小。对于指针,sizeof 返回指针本身的......
  • nmap命令的用法
    Nmap简介Nmap是一款非常强大的主机发现和端口扫描工具,而且nmap运用自带的脚本,还能完成漏洞检测,同时支持多平台。官网一般情况下,Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信......
  • C转C++速成浅入浅出系列——STL之vector
    本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。vector【vector:矢量,向量】理解为向量、动态数组等。我想在我这种入门阶段,最常用的还是其动态数组的功能。需提供头文件#include<vector>创建可指定数组大小,和所有值的初始值;数组大小初始值......
  • C转C++速成浅入浅出系列——STL之set
    本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。set【setof:集合】理解为集合。特点是①元素各不相同②元素会自动从小到大排序③初始时无法指定其大小需提供头文件#include<set> 创建注意初始时不能指定其大小。(不能说集合里有5个......
  • c++ openssl加密 解密
    #include<iostream>#include<boost/asio.hpp>#include<boost/beast.hpp>#include<boost/beast/websocket.hpp>#include<boost/asio/spawn.hpp>#include<json.hpp>#include<boost/filesystem.hpp>#include<fstrea......
  • 2024AAAI_SGNet Structure Guided Network via Gradient-Frequency Awareness for Dep
    1.任务描述: 给定输入LR深度图和HRRGB图像,引导DSR目的是在ground-truth深度图监督的条件下,预测HR深度图2.Network本文提出的SGNet主要包括两部分,即梯度校准模块(GCM)和频率感知模块(FAM)。首先将RGB图像和上采样后的LR深度图送入到GCM,利用RGB丰富的梯度信息在梯度域中......
  • 用C++11打造智能观察者模式:详解实现步骤完整示例代码
     观察者模式是一种行为设计模式,其中一个对象(主题)维护其依赖对象(观察者)的列表,当主题的状态发生变化时,它通知所有观察者。以下是一个使用C++11实现观察者模式的简单例子:定义观察者接口(Observer): 创建一个观察者接口,该接口包含观察者需要实现的更新方法。这个接口可以包含其他......
  • 学习Java8中StreamAPI的笔记
    本次笔记记录一下我自己学习Stream流的一个情况。第一种:使用Stream流来代替增强for循环进行赋值:这是使用增强for循环的写法:publicstaticvoidmain(String[]args){ArrayList<String>strings=newArrayList<>();strings.add("张三");strings.add("李四");strings.add......
  • 1. C++ 开发环境
    C++开发环境VisualC++/GCC(G++)/Clang(Clang++)集成开发环境:VisualStudio/CodeLite/Code::blocks/CLion/Eclipse...工具:/usr/bin/timevalgrindcppreferenceCompilerexplorerC++Insights当前各版本编译器对C++20特性的支持情况:查看网站:https://......