21xrx.com
2024-12-22 22:32:23 Sunday
登录
文章检索 我的文章 写文章
如何使用C++中的Map根据Key值获取对应的Value呢?
2023-07-03 15:07:38 深夜i     --     --
C++ Map Key Value 获取

在C++中,Map是一种关联式容器,它可以存储键值对,并且快速地根据键值获取对应的值。使用Map可以方便地实现许多算法和数据结构,同时也是C++程序员最常用的容器之一。

Map的基本用法是通过插入键值对来构建Map。它可以存储键和值的类型可以是任何可比较的类型,例如int、double、string等。我们可以通过以下方式声明一个Map:


std::map<int, std::string> Map1;

这个Map可以存储int类型的键和string类型的值。我们可以通过insert()函数向Map中插入键值对:


Map1.insert(std::pair<int, std::string>(1, "value1"));

Map1.insert(std::pair<int, std::string>(2, "value2"));

Map1.insert(std::pair<int, std::string>(3, "value3"));

在上面的例子中,我们通过insert()函数插入了三个键值对。每个键值对都是一个std::pair对象,它包含了一个键和一个值。键的类型为int,值的类型为std::string。

现在我们已经插入了几个键值对,我们可以通过键来获取相应的值。Map提供了一个find()函数来查找指定的键。如果找到了,则返回该键对应的迭代器,否则返回end()迭代器。代码如下:


std::map<int, std::string>::iterator it = Map1.find(2);

if (it != Map1.end())

  std::string value = it->second;

  std::cout << "The value of key 2 is " << value << std::endl;

在这个例子中,find()函数查找键为2的键值对。如果该键存在,则返回一个迭代器。我们可以通过该迭代器获取键对应的值。在这里,我们使用迭代器的second成员来获取值。如果该键不存在,则迭代器等于end()。因此,在使用迭代器之前,我们需要检查迭代器是否等于end()。

同时,Map还提供了另一个函数,即operator[]()函数,它可以使用键来获取对应的值。这个函数非常简单,如果键存在,则返回对应的值,否则插入一个新的键值对并返回默认构造函数返回的值。例如,我们可以通过以下方式获取键为2的值:


std:string value = Map1[2];

std::cout << "The value of key 2 is " << value << std::endl;

上述代码将会输出"The value of key 2 is value2"。

总的来说,通过使用Map容器,C++程序员可以轻松地实现有关键值对的算法和数据结构。要访问Map中的值,我们可以使用find()和operator[]()函数来根据给定的键获取相应的值。

  
  

评论区

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