C++ 映射类型
示例
常规映射
映射是一个关联容器,包含键值对。
#include <string> #include <map> std::map<std::string, size_t> fruits_count;
在上面的示例中,std::string是键类型,size_t是值。
键在映射中充当索引。每个密钥必须唯一,并且必须订购。
如果您需要具有相同键的多重元素,请考虑使用multimap(如下所述)
如果您的值类型未指定任何顺序,或者您想覆盖默认顺序,则可以提供以下一种:
#include<string>
#include<map>
#include<cstring>
structStrLess{
booloperator()(conststd::string&a,conststd::string&b){
returnstrncmp(a.c_str(),b.c_str(),8)<0;
//仅比较最多8个首字符
}
}
std::map<std::string,size_t,StrLess>fruits_count2;
如果StrLess比较器返回false两个键,即使它们的实际内容不同,它们也被认为是相同的。
多映射
Multimap允许将具有相同键的多个键值对存储在映射中。否则,其界面和创建与常规映射非常相似。
#include <string> #include <map> std::multimap<std::string, size_t> fruits_count; std::multimap<std::string, size_t, StrLess> fruits_count2;
哈希图(无序图)
哈希映射存储类似于常规映射的键/值对。但是,它不会根据键对元素进行排序。而是使用键的哈希值来快速访问所需的键值对。
#include <string> #include <unordered_map> std::unordered_map<std::string, size_t> fruits_count;
无序映射通常会更快,但是元素不会以任何可预测的顺序存储。例如,对中的所有元素进行迭代unordered_map会赋予看似随机的元素。
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短