博客
关于我
Map(关联式容器)
阅读量:800 次
发布时间:2023-02-07

本文共 1888 字,大约阅读时间需要 6 分钟。

C++ Map容器的常用功能解析

Map是一种关联式容器,能够自动建立Key-Value对应关系,其中Key和Value可以是任意类型。以下将详细介绍Map中的常用功能。

一、Map的开始与结束操作

Map的begin()和end()方法用于遍历Map中的元素。begin()返回第一个元素的Key,end()返回最后一个元素的后继位置。

map
m;
m['a'] = 100;
m['b'] = 200;
m['c'] = 300;
m.begin() -> first; // 输出第一个元素的键值
m.begin() -> second; // 输出第一个元素的值
m.end() -> first; // 输出最后一个元素的下一个键值
m.end() -> second; // 输出最后一个元素的下一个值

二、逆向遍历操作

Map支持逆向遍历操作,使用rbegin()和rend()方法。

map
m;
m['a'] = 100;
m['b'] = 200;
m['c'] = 300;
map
::reverse_iterator iter = m.rbegin();
iter -> first; // 输出最后一个元素的键值
iter -> second; // 输出最后一个元素的值
iter = m.rend();
iter -> first; // 输出第一个元素前面的键值

三、Map为空判断

empty()方法用于判断Map是否为空。

map
m;
bool isEmpty = m.empty(); // 返回true表示Map为空

四、Map的大小

size()方法返回Map中元素的数量。

map
m;
m['a'] = 100;
m['b'] = 200;
m['c'] = 300;
int size = m.size(); // 返回Map中元素个数

五、Map的at方法

at方法用于通过Key获取对应的Value,不会报错,即使Key不存在。

map
m;
m['a'] = 100;
m['b'] = 200;
m['c'] = 300;
int value = m.at('a'); // 获取键'a'对应的值

六、Map的find方法

find方法用于查找特定Key的位置,返回对应的iterator。

map
m;
m['a'] = 100;
m['b'] = 200;
m['c'] = 300;
auto iter = m.find('b'); // 查找键'b'
iter -> second; // 输出键'b'对应的值

七、Map的插入操作

insert方法用于插入元素,可选位置包括begin、end、用户指定位置。

map
m;
m['a'] = 100;
m['b'] = 200;
m['c'] = 300;
m.insert(m.begin(), pair
('a', 50)); // 在前面插入新元素
map
m1 = m;
m1.insert(m.begin(), m.end()); // 将m中的所有元素复制给m1
auto it = m.find('c');
m1.insert(m.begin(), it); // 从begin到find('c')复制元素

八、Map的删除操作

erase方法用于删除特定Key的元素,可选删除多个元素。

map
m;
m['a'] = 100;
m['b'] = 200;
m['c'] = 300;
m.erase('a'); // 删除键'a'对应的元素
auto it = m.find('a');
m.erase(it); // 删除键'a'对应的元素
m.erase(it, ++m.find('b')); // 删除键'a'和'b'对应的元素

九、Map的count方法

count方法用于统计特定Key出现的次数。

map
m;
m['a'] = 100;
m['b'] = 200;
m['c'] = 300;
int count = m.count('b'); // 统计键'b'出现的次数

以上是Map容器的常用功能解析,希望对C++开发者有所帮助。

转载地址:http://dwyfk.baihongyu.com/

你可能感兴趣的文章
node.js+react写的一个登录注册 demo测试
查看>>
Node.js中环境变量process.env详解
查看>>
Node.js之async_hooks
查看>>
Node.js初体验
查看>>
Node.js升级工具n
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Node.js安装和入门 - 2行代码让你能够启动一个Server
查看>>
node.js安装方法
查看>>
Node.js官网无法正常访问时安装NodeJS的方法
查看>>
node.js模块、包
查看>>
node.js的express框架用法(一)
查看>>
Node.js的交互式解释器(REPL)
查看>>
Node.js的循环与异步问题
查看>>
Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
查看>>
nodejs + socket.io 同时使用http 和 https
查看>>