C++ map映射函数用法

本文概述

  • 句法
  • 参数
  • 建立地图
  • 例子1
  • 会员职能
映射是C ++ STL(标准模板库)的一部分。映射是存储排序的键值对的关联容器, 其中每个键都是唯一的, 可以插入或删除, 但不能更改。与键关联的值可以更改。
例如:一张员工图, 其中员工ID是键, 名称是值, 可以表示为:
按键 价值观
101 Nikita
102 Robin
103 Deep
104 John
句法
template < class Key, // map::key_typeclass T, // map::mapped_typeclass Compare = less< Key> , // map::key_compareclass Alloc = allocator< pair< const Key, T> > // map::allocator_type> class map;

参数key:要存储在地图中的密钥数据类型。
type:要存储在地图中的值的数据类型。
compare:一个比较类, 该类接受两个bool类型相同的参数, 并返回一个值。此参数是可选的, 二进制谓词less < “ key”> 是默认值。
alloc:分配器对象的类型。此参数是可选的, 默认值为allocator。
建立地图使用以下语句可以轻松创建地图:
typedef pair< const Key, T> value_type;

上面的表格将用于创建一个键类型为Key type且值类型为value value类型的映射。重要的一点是, 映射的键和对应的值始终成对插入, 不能在映射中仅插入键或仅插入值。
例子1
#include < string.h> #include < iostream> #include < map> #include < utility> using namespace std; int main(){map< int, string> Employees; // 1) Assignment using array index notationEmployees[101] = "Nikita"; Employees[105] = "John"; Employees[103] = "Dolly"; Employees[104] = "Deep"; Employees[102] = "Aman"; cout < < "Employees[104]=" < < Employees[104] < < endl < < endl; cout < < "Map size: " < < Employees.size() < < endl; cout < < endl < < "Natural Order:" < < endl; for( map< int, string> ::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii){cout < < (*ii).first < < ": " < < (*ii).second < < endl; }cout < < endl < < "Reverse Order:" < < endl; for( map< int, string> ::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii){cout < < (*ii).first < < ": " < < (*ii).second < < endl; }}

输出:
Employees[104]=DeepMap size: 5Natural Order:101: Nikita102: Aman103: Dolly104: Deep105: JohnReverse Order:105: John104: Deep103: Dolly102: Aman101: Nikita

会员职能【C++ map映射函数用法】以下是map的所有成员函数的列表:
建造者/毁灭者
功能 描述
constructors Construct map
destructors Map destructor
operator= 将地图元素复制到另一张地图。
迭代器
功能 描述
begin 返回指向地图中第一个元素的迭代器。
cbegin 返回指向地图中第一个元素的const迭代器。
end 返回指向末尾的迭代器。
cend 返回指向末尾的常量迭代器。
rbegin 返回指向末尾的反向迭代器。
rend 返回指向起点的反向迭代器。
crbegin 返回指向末尾的常量反向迭代器。
crend 返回指向起点的常量反向迭代器。
容量
功能 描述
empty 如果map为空, 则返回true。
size 返回地图中的元素数。
max_size 返回地图的最大尺寸。
元素访问
功能 描述
operator[] 用给定的键检索元素。
at 用给定的键检索元素。
修饰符
功能 描述
insert 在地图中插入元素。
erase 从地图上擦除元素。
swap 交换地图内容。
clear 删除地图的所有元素。
emplace 构造新元素并将其插入地图。
emplace_hint 通过提示构造新元素并将其插入地图。
观察者
功能 描述
key_comp 返回键比较对象的副本。
value_comp 返回值比较对象的副本。
运作方式
功能 描述
find 搜索具有给定键的元素。
count 获取与给定键匹配的元素数。
lower_bound 返回迭代器的下限。
upper_bound 返回一个迭代器到上限。
equal_range 返回与给定键匹配的元素范围。
分配者
功能 描述
get_allocator 返回用于构造映射的分配器对象。
非成员重载函数
功能 描述
operator== 检查两个映射是否相等。
operator!= 检查两个映射是否相等。
operator< 检查第一张地图是否小于其他地图。
operator< = 检查第一张地图是否小于或等于其他地图。
operator> 检查第一张地图是否大于其他地图。
operator> = 检查第一张地图是否大于其他地图。
swap() 交换两个地图的元素。

    推荐阅读