迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

在 C++ 中检查 map 中是否存在某个键值

作者:迹忆客 最近更新:2024/01/02 浏览次数:

本文将介绍如何在 C++ 中检查 map 中是否存在某个键。


使用 std::map::find 函数检查 C++ map 中是否存在某个键

std::map 容器是一个键值对的关联数据结构,按顺序存储,每个元素都有一个唯一的键。另一方面,STL 还提供了一个名为 std::unordered_map 的同一个容器的未排序版本。这两个容器都支持下面描述的关键字搜索方法。

findstd::map 容器的内置函数之一,它采用对应键值的单个参数进行搜索。该函数返回具有给定键值的元素的迭代器,否则返回尾后迭代器。在以下示例中,我们初始化 std::pair<string, string> 类型的 map,然后从传递给 find 函数的用户输入中获取键值。示例程序将肯定字符串输出到 cout 流。

#include <iostream>
#include <map>

using std::cin;
using std::cout;
using std::endl;
using std::map;
using std::string;

int main() {
  string key_to_find;
  std::map<string, string> lang_map = {{
                                           "j",
                                           "Julia",
                                       },
                                       {
                                           "p",
                                           "Python",
                                       },
                                       {
                                           "m",
                                           "MATLAB",
                                       },
                                       {
                                           "o",
                                           "Octave",
                                       },
                                       {
                                           "s",
                                           "Scala",
                                       },
                                       {
                                           "l",
                                           "Lua",
                                       }};

  for (const auto& [key, value] : lang_map) {
    cout << key << " : " << value << endl;
  }

  cout << "Enter the key to search for: ";
  cin >> key_to_find;

  if (lang_map.find(key_to_find) != lang_map.end()) {
    cout << "Key Exists!" << endl;
  }

  return EXIT_SUCCESS;
}

输出:

j : Julia
l : Lua
m : MATLAB
o : Octave
p : Python
s : Scala
Enter the key to search for: l
Key Exists!

使用 std::map::count 函数检查 C++ map 中是否存在某个键值

或者,可以利用 std::map 容器的 count 内置函数来检查给定的键是否存在于 map 对象中。请注意,count 函数检索具有给定键值的元素的数量。如果没有找到键为 0 的元素,则返回值。因此,当给定的键存在于 map 对象中时,我们可以使用 count 函数调用作为 if 条件来输出确认字符串。

#include <iostream>
#include <map>

using std::cin;
using std::cout;
using std::endl;
using std::map;
using std::string;

int main() {
  string key_to_find;
  std::map<string, string> lang_map = {{
                                           "j",
                                           "Julia",
                                       },
                                       {
                                           "p",
                                           "Python",
                                       },
                                       {
                                           "m",
                                           "MATLAB",
                                       },
                                       {
                                           "o",
                                           "Octave",
                                       },
                                       {
                                           "s",
                                           "Scala",
                                       },
                                       {
                                           "l",
                                           "Lua",
                                       }};

  cout << "Enter the key to search for: ";
  cin >> key_to_find;

  if (lang_map.count(key_to_find)) {
    cout << "Key Exists!" << endl;
  }

  return EXIT_SUCCESS;
}

输出:

Enter the key to search for: l
Key Exists!

使用 std::map::contains 函数检查 C++ map 中是否存在某个键值

contains 是另一个内置函数,可用于查找键是否存在于 map 中。如果具有给定键的元素存在于对象中,则此函数返回一个布尔值。请注意,本文中列出的所有三个函数都具有对数复杂度。

#include <iostream>
#include <map>

using std::cin;
using std::cout;
using std::endl;
using std::map;
using std::string;

int main() {
  string key_to_find;
  std::map<string, string> lang_map = {{
                                           "j",
                                           "Julia",
                                       },
                                       {
                                           "p",
                                           "Python",
                                       },
                                       {
                                           "m",
                                           "MATLAB",
                                       },
                                       {
                                           "o",
                                           "Octave",
                                       },
                                       {
                                           "s",
                                           "Scala",
                                       },
                                       {
                                           "l",
                                           "Lua",
                                       }};

  cout << "Enter the key to search for: ";
  cin >> key_to_find;

  if (lang_map.contains(key_to_find)) {
    cout << "Key Exists!" << endl;
  }

  return EXIT_SUCCESS;
}

输出:

Enter the key to search for: l
Key Exists!

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 C++ 中实现毫秒级的睡眠

发布时间:2024/01/02 浏览次数:124 分类:C++

本文介绍了在 C++ 中使用不同方法暂停程序执行,实现睡眠的方法。本文介绍了在 C++ 中睡眠毫秒的方法。使用 std::this_thread::sleep_for 方法在 C++ 中睡眠

如何在 C++ 中将双精度数四舍五入到整数上

发布时间:2024/01/02 浏览次数:88 分类:C++

本文演示了如何在 C++ 中把双精度数四舍五入到整数中。本文将为大家讲解几种在 C++ 中如何将双精度数四舍五入为整数的方法。使用 round() 函数将双精度数四舍五入到整数

如何在 C++ 中以毫秒为单位获取时间

发布时间:2024/01/02 浏览次数:60 分类:C++

本文介绍了如何在 C++ 中获取以毫秒为单位的时间。本文将介绍多种 C++ 方法,介绍如何以毫秒为单位获取时间。

如何在 C++ 中把 Char 数组转换为 Int

发布时间:2024/01/02 浏览次数:90 分类:C++

本文演示了在 C++ 中把 char 数组转换为 int 类型的方法。本文将介绍将 char 数组转换为 int 类型的 C++ 方法。使用 std::strtol 函数将 char 数组转换为 int 类型

如何在 C++ 中将 ASCII 码转换为字符

发布时间:2024/01/02 浏览次数:183 分类:C++

本文介绍了在 C++ 中如何将 ASCII 值转换为 char 的方法。本文将演示关于如何在 C++ 中把 ASCII 值转换为字符的多种方法。在 C++ 中使用赋值运算符将 ASCII 值转换为字符

如何在 C++ 中把十进制转换为二进制

发布时间:2024/01/02 浏览次数:71 分类:C++

本文介绍如何在 C++ 中把十进制数转换成二进制数。本文将介绍几种在 C++ 中如何将十进制数转换为二进制表示的方法。在 C++ 中使用自定义定义的函数将十进制数转换为二进制数

如何在 C++ 中把枚举型转换为字符串

发布时间:2024/01/02 浏览次数:138 分类:C++

本文演示了如何在 C++ 中把枚举转换为字符串。本文将解释几种在 C++ 中把枚举类型转换为 string 变量的方法。使用 const char*数组将枚举类型转换为字符串

在 C++ 创建一个字典

发布时间:2024/01/02 浏览次数:191 分类:C++

本文介绍了如何在 C++ 中创建一个字典。使用初始化列表构造函数在 C++ 中创建字典 在 C++ 标准容器库中,有一个名为 std::map 的字典,它实现了具有唯一键的排序键值对。

如何在 C++ 中将文本追加到文件

发布时间:2024/01/02 浏览次数:95 分类:C++

本文介绍了如何用 C++ 将文本追加到文件中的方法。使用 std::ofstream 和 open() 方法将文本追加到文件中

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便