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

相关文章
|
存储 安全 Go
|
3月前
|
存储 JavaScript 前端开发
for...of循环在遍历Set和Map时的注意事项有哪些?
for...of循环在遍历Set和Map时的注意事项有哪些?
252 121
|
3月前
|
存储 编译器 容器
set、map、multiset、multimap的介绍及使用以及区别,注意事项
set是按照一定次序存储元素的容器,使用set的迭代器遍历set中的元素,可以得到有序序列。set当中存储元素的value都是唯一的,不可以重复,因此可以使用set进行去重。set默认是升序的,但是其内部默认不是按照大于比较,而是按照小于比较。set中的元素不能被修改,因为set在底层是用二叉搜索树来实现的,若是对二叉搜索树当中某个结点的值进行了修改,那么这棵树将不再是二叉搜索树。
191 0
|
10月前
|
存储 Java API
Java交换map的key和value值
通过本文介绍的几种方法,可以在Java中实现Map键值对的交换。每种方法都有其优缺点,具体选择哪种方法应根据实际需求和场景决定。对于简单的键值对交换,可以使用简单遍历法或Java 8的Stream API;对于需要处理值不唯一的情况,可以使用集合存储或Guava的Multimap。希望本文对您理解和实现Java中的Map键值对交换有所帮助。
204 1
|
11月前
|
存储 自然语言处理 安全
【数据结构】Map的使用与注意事项
【数据结构】Map的使用与注意事项
124 1
|
存储 Java API
探讨Java中交换Map的Key和Value值的技术
探讨Java中交换Map的Key和Value值的技术
202 2
|
存储 缓存 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`常用于缓存、配置管理、数据库结果映射等多种场景。
225 1
|
存储 前端开发 索引
Map循环注意事项
Map循环注意事项
44 1
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
261 0
|
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'的值。
643 1