map使用const char*作为key值查找注意事项

简介: map使用const char*作为key值查找注意事项

1、map查找的方法


第一种 查找方法为:find,输入一个需要查找的key值,输出一个迭代器。若map中存在所要查找的key值,则返回该key值所在位置的迭代器;若map中不存在所要查找的key值,则返回map::end()

#include<map>
#include<string>
map<string, int> test=
{
  {"one", 1},
  {"two", 2},
  {"three", 3}
};
map<string, int>::iterator ite1 = test.find("one");
auto ite2 = test.find("two");


第二种 查找方法为:[],C++ STL的map类中对[]做了重载,可以通过像数组元素访问的方式输入key值来查找map中的某个元素,若map中存在所要查找的key值,则返回key值所对应的实值(value),若map中不存在所要查找的key值,则返回0。

int v1 = test["one"];
int v2 = test["two"];

第三种 查找方法为:at,C++11中新加入一种查找方式,输入一个需要查找的key值,输出所找的实值的一个引用。若map中存在所要查找的key值,则返回输出所找的实值的引用;若map中不存在所要查找的key值,则抛出一个out_of_range的异常。

int& v1 = test.at("one");
int v2 = test.at("two");




2、使用const char *作为key



若使用const char *作为key值,则在查找时,输入的key值必须是"one"这种形式,否则会出现查找不到的情况。若要通过带入变量或者自己定义const char *带入,则可以将string作为key值。

相关文章
|
6月前
|
存储 安全 Go
|
安全 Cloud Native Go
需要提醒你关于 golang 中 map 使用的几点注意事项
需要提醒你关于 golang 中 map 使用的几点注意事项
|
19天前
|
存储 Java API
Java交换map的key和value值
通过本文介绍的几种方法,可以在Java中实现Map键值对的交换。每种方法都有其优缺点,具体选择哪种方法应根据实际需求和场景决定。对于简单的键值对交换,可以使用简单遍历法或Java 8的Stream API;对于需要处理值不唯一的情况,可以使用集合存储或Guava的Multimap。希望本文对您理解和实现Java中的Map键值对交换有所帮助。
23 1
|
1月前
|
存储 自然语言处理 安全
【数据结构】Map的使用与注意事项
【数据结构】Map的使用与注意事项
28 1
|
5月前
|
存储 Java API
探讨Java中交换Map的Key和Value值的技术
探讨Java中交换Map的Key和Value值的技术
40 2
|
5月前
|
存储 缓存 Java
Java交换map的key和value值
在Java中,直接交换`Map`的key和value是不允许的,因为key是唯一的且不可变。不过,可以通过创建新`Map`实现交换:将原`Map`的value作为新key,key作为新value。注意,如果原`Map`有重复value或null,需额外处理。以下是一个代码示例,展示了如何在value唯一且非null的情况下交换`Map`的key和value。对于重复value或null值的情况,可以使用`List`存储多个key或忽略null值。在实际应用中,`Map`常用于缓存、配置管理、数据库结果映射等多种场景。
63 1
|
5月前
|
C++
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
|
6月前
|
存储 前端开发 索引
Map循环注意事项
Map循环注意事项
26 1
|
6月前
|
Java API
List转Map(id为key,list为value)
List转Map(id为key,list为value)
257 0
|
6月前
|
存储 索引
Map存储两个key:Duplicate key 6
Map存储两个key:Duplicate key 6
268 0