21xrx.com
2024-11-09 00:15:56 Saturday
登录
文章检索 我的文章 写文章
详解C++中的map容器
2023-07-06 19:36:35 深夜i     --     --
C++ map容器 用法 实例代码

C++中的map容器是一种关联式容器,它以键值对的形式存储数据。即,它将几乎所有的数据类型都映射到其对应的值上。在map容器中,键是唯一的,而值则可以重复。

map是STL中的一种关联式容器,它提供了查找、排序和插入等操作,并且所有操作的时间复杂度都是O(log n)。map容器中的元素是按键值自动排序的,无需手动排序。因此,map容器非常适用于需要根据键值去查找元素的场景。

声明一个map容器的语法很简单,如下:


map <key_type, value_type> map_name;

其中,key_type和value_type表示键和值的数据类型,map_name表示map容器的名称。例如,要声明一个键为字符串类型,值为整型的map容器,可以这样写:


map <string, int> map_score;

使用map容器的第一步是插入元素。要插入元素,可以使用insert()函数。下面是一个例子:


map<int, int> mp;

mp.insert(make_pair(1,2));

这段代码将1映射到了2。make_pair()函数可以用来产生一个键-值对,然后将其插入到map容器内。

使用[]运算符来访问map容器内的元素。下面的代码将2赋值给键为1的元素:


mp[1] = 2;

在map容器内查找一个元素,可以使用find()函数。如果元素存在,就返回指向该元素的迭代器,如下:


map<int, int>::iterator it = mp.find(1);

如果元素不存在,就返回一个指向map容器末尾位置的迭代器。因此,在查找之前需要进行一个判断:


map<int, int>::iterator it = mp.find(3);

if (it != mp.end())

  cout << "找到元素

else

  cout << "找不到元素" << endl;

除了使用find()函数,还可以使用count()函数来查找map容器中是否存在某个键。如果键存在,返回1,否则返回0。示例如下:


if (mp.count(1) != 0)

  cout << "找到元素" << endl;

else

  cout << "找不到元素" << endl;

在map容器中删除一个元素,可以使用erase()函数,并传入指向该元素的迭代器,示例如下:


map<int, int>::iterator it = mp.find(1);

mp.erase(it);

以上便是关于C++中的map容器的详解。map容器是非常实用的数据结构之一,尤其是在需要进行键值查找的场景。有了这篇文章的介绍,相信您已经掌握了map容器的基本使用方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复