菜鸟笔记
提升您的技术认知

c map(关联容器)-ag真人游戏

阅读 : 281

映射是c stl(标准模板库)的一部分。映射是存储排序的键值对的关联容器,其中每个键都是唯一的,可以插入或删除但不能更改。可以更改与键关联的值。 例如: 员工图,其中雇员id是键,名称是值,可以表示为:

101 nikita
102 robin
103 deep
104 john

语法

template < class key,                                             // map::key_type
           class t,                                                     // map::mapped_type
           class compare = less,                        // map::key_compare
           class alloc = allocator >    // map::allocator_type
           > class map;

参数

key: 要存储在地图中的键数据类型。 t: 要存储在地图中的值的数据类型。 compare: 一个比较类,它接受两个相同类型的布尔变量,并返回一个值。此参数是可选的,二进制谓词less <"key">是默认值。 alloc: 分配器对象的类型。此参数是可选的,默认值为分配器

创建地图

可以使用以下语句轻松创建地图:

typedef pair value_type;

上面的表格将用于创建具有 key type 类型的键和 value type类型的值的地图。重要的一点是地图的键和相应的值始终成对插入,您不能在映射中仅插入键或仅插入值。

示例1

#include 
#include 
#include 
#include 
using namespace std;
int main()
{
   map employees;
   // 1) assignment using array index notation
   employees[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::iterator ii=employees.begin(); ii!=employees.end();   ii)
   {
       cout << (*ii).first << ": " << (*ii).second << endl;
   }
   cout << endl << "reverse order:" << endl;
   for( map::reverse_iterator ii=employees.rbegin(); ii!=employees.rend();   ii)
   {
       cout << (*ii).first << ": " << (*ii).second << endl;
   }
}

输出:

employees[104]=deep
map size: 5
natural order:
101: nikita
102: aman
103: dolly
104: deep
105: john
reverse order:
105: john
104: deep
103: dolly
102: aman
101: nikita

成员函数

以下是map的所有成员函数的列表:

构造函数/析构函数

功能 说明
constructors construct map
destructors map destructor
operator= 将map的元素复制到另一个map。

迭代器

功能 说明
begin 返回指向地图中第一个元素的迭代器。
cbegin 返回指向地图中第一个元素的const迭代器。
end 返回指向末尾的迭代器。
cend 返回一个指向末尾的常量迭代器。
rbegin 返回指向结尾的反向迭代器。
rend 返回指向起点的反向迭代器。
crbegin 返回一个指向末尾的常量反向迭代器。
credit 返回指向起点的常量反向迭代器。

容量

功能 说明
empty 如果地图为空,则返回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() 交换两个地图的元素。
网站地图