本文概述
- 句法
- 参数
- 建立地图
- 例子1
- 会员职能
例如:一张员工图, 其中员工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() | 交换两个地图的元素。 |
推荐阅读
- C++程序打印字母三角形
- C++列表list用法
- C++ do-while循环语句
- C++ deque双端队列用法
- 在C++中按值调用和按引用调用
- C++ break语句
- C++中的矩阵乘法
- C++ multimap用法
- C++异常处理