std:map与迭代器简析

背景

最近在读ROS操作系统源代码,多处遇到std::map这一容器。为更好理解ROS源代码,现将std::map的相关知识进行一个梳理。

因ROS而动意写此文,故主要描述与ROS代码相关部分。

容器map简析

std::map是一种关联容器,查询一个元素是否存在,并有效地获取元素。具体地,map是一个键/值(key/value)对,键(key)用于查询,而值(value)包含我们希望使用的数据。例如电话号码本,键是人名,而值是对应的电话号码。

#include <iostream>
#include <map>

int main() {
  std::map<int, float> num_map;
  num_map[4] = 4.13;
  num_map[9] = 
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ std::map是用来遍历map中的元素的工具。可以指向map中的每个键值对,允许访问键和值。在C++中,有三种常用的类型:基础、反向和常量。 基础是通过`begin()`和`end()`函数来获取的。`begin()`函数返回指向map中第一个元素的,而`end()`函数返回指向map中最后一个元素之后位置的。基础可以使用自增运算符`++`来遍历map中的键值对,并通过解引用(*)操作符来获得键和值。例如,使用`map<string, int>::iterator`类型定义,并通过循环遍历map中的键值对,可以实现对map的遍历。 反向是通过`rbegin()`和`rend()`函数来获取的。`rbegin()`函数返回指向map中最后一个元素的,而`rend()`函数返回指向map中第一个元素之前位置的。反向可以使用自减运算符`--`来遍历map中的键值对,并通过解引用(*)操作符来获得键和值。反向可以实现对map的反向遍历。 常量是通过`cbegin()`和`cend()`函数来获取的。常量与基础类似,但是不能修改map中的元素。常量可以用于在不改变map的情况下遍历元素。 综上所述,C++ std::map是用于遍历map中的键值对的工具。基础、反向和常量分别用于正向遍历、反向遍历和只读遍历map。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C++ std::map遍历删除遇到的坑](https://blog.csdn.net/zidian666/article/details/125673395)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [C++map最全最容易理解](https://blog.csdn.net/qq_53547805/article/details/122146122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值