21xrx.com
2024-12-22 21:53:06 Sunday
登录
文章检索 我的文章 写文章
如何在C++中获取指定map的值?
2023-07-10 00:41:00 深夜i     --     --
C++ map 获取值

在C++中,map可以被用来存储键值对,也被称作字典。在操作map时,我们通常需要获取特定键的值。下面是一些获取map键值的方法。

1. 使用关键字[ key ]的索引操作符

在C++中,我们可以使用map的索引操作符[ ]来获取指定键的值。这种方法适用于序列操作,在map中查找键值对时非常方便,而且速度较快。

示例代码:


#include <iostream>

#include <map>

int main() {

  std::map<std::string, int> m{"one", 2, "three"};

  // 使用 [] 操作符获取键值

  std::cout<<m["one"]<<std::endl; // 输出: 1

  std::cout<<m["two"]<<std::endl; // 输出: 2

  std::cout<<m["three"]<<std::endl; // 输出: 3

  return 0;

}

2. 使用.find()方法

C++中map还提供了专门用来查找键对应值的方法——find()。这种方法可以避免使用索引操作符访问不存在的键时引起的异常,同时还可以提供更加直接的查询方式。find()方法返回一个指向键值为参数的迭代器,如果找到指定键所在的键值对,返回该键值对的迭代器,否则返回map::end(),标识查找失败。

示例代码:


#include <iostream>

#include <map>

int main() {

  std::map<std::string, int> m{"one", 2, 3};

  // 使用 .find() 方法查找键值

  std::map<std::string, int>::iterator foundOne = m.find("one");

  std::map<std::string, int>::iterator foundFour = m.find("four");

  // 输出查找结果

  if(foundOne!=m.end())

    std::cout<<"one is present in map, value is: "<<(*foundOne).second<<std::endl;

  else

    std::cout<<"one not found"<<std::endl;

  if(foundFour!=m.end())

    std::cout<<"four is present in map, value is: "<<(*foundFour).second<<std::endl;

  else

    std::cout<<"four not found"<<std::endl;

  return 0;

}

以上就是在C++中获取特定map键值的两种方法。需要注意的是,无论使用哪种方法获取map的值时,都需要确保map中确实存在待获取的键。否则会导致错误的结果或抛出异常,在使用map时需要特别小心。

  
  

评论区

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