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值。

相关文章
|
2月前
|
存储 安全 Go
|
8月前
|
安全 Cloud Native Go
需要提醒你关于 golang 中 map 使用的几点注意事项
需要提醒你关于 golang 中 map 使用的几点注意事项
|
6天前
|
存储 Java API
探讨Java中交换Map的Key和Value值的技术
探讨Java中交换Map的Key和Value值的技术
9 2
|
20天前
|
存储 缓存 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`常用于缓存、配置管理、数据库结果映射等多种场景。
26 1
|
17天前
|
C++
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
|
2月前
|
存储 前端开发 索引
Map循环注意事项
Map循环注意事项
16 1
|
2月前
|
Java API
List转Map(id为key,list为value)
List转Map(id为key,list为value)
52 0
|
2月前
|
存储 索引
Map存储两个key:Duplicate key 6
Map存储两个key:Duplicate key 6
40 0
|
2月前
|
C++
【C++】std::string 转换成非const类型 char* 的三种方法记录
【C++】std::string 转换成非const类型 char* 的三种方法记录
28 0
|
2月前
|
Python
python 判断 map中是否存在key为a的值
在Python中,你可以使用`in`关键字来判断一个key是否存在于map(字典)中。例如: ```python my_map = {'a': 1, 'b': 2, 'c': 3} if 'a' in my_map: print('Key "a" exists in the map') else: print('Key "a" does not exist in the map') ``` 这段代码会输出"Key 'a' exists in the map",因为字典`my_map`中存在key为'a'的值。