当前位置:网站首页>本周小贴士#136:无序容器
本周小贴士#136:无序容器
2022-07-07 15:39:00 【-飞鹤-】
TotW#136最初发表于2017年6月23日
由Matt Kulukundis创作
“有时,当材料真的很好时,你会对自己寄予期望,以使其成为最好的节目。你不只是提供规则的哈希,接着做你的工作,然后回家。”-彼得.丁拉基
长话短说,有关官方最新的推荐,请看https://abseil.io/docs/cpp/guides/container。本贴士介绍新类型,但不是规范的参考。
介绍absl:_hash_map
城镇出现了一个新的关联容器系列。他们自夸提高效率并提供早于C++17的访问。他们也对开发者提供直接控制其实现和默认的哈希函数,这对于代码库的长远发展是重要的。新代码应该优先这些类型而不是std::unordered_map。在该系统中的所有map和set有与std::unordered_map相同的API,所以很容易转换到它们。
对于每个absl::_hash_map而言,这里同样也有一个absl::_hash_set;但是,这些图表将只描述map的情况,并且我们也常提到的只是map。
absl::flat_hash_map 和 absl::flat_hash_set
这些应该是你的默认选择。他们存储他们的value_type到主数组中。因为当它们重新散时移动数据,元素无法使得指针稳定。如果你需要指针稳定或者你的值很大,请考虑使用absl::node_hash_map代替,或者 Absl::flat_has-mak<Key,std::unique_ptr>。
absl::node_hash_map 和 absl::node_hash_set
敬告:因为在重新散列像map[“a”]=map[“b”]之后将访问无效的内存,指针不稳定。
它们主数组之外分配它们的value_type(如std::unordered_map)。由于这些独立的分配,它们为存储的数据提供指针稳定性(存储在map中的对象的地址不会改变),并且空槽只需要8个字节。另外,它们能够存储既不能移动也不能复制的东西。
我们通常建议您使用 absl::flat_hash_map<K, std::unique_ptr> 而不是 absl::node_hash_map<K, V>,对于 node_hash_set 也是如此。
边栏推荐
- 国内首创!Todesk将RTC技术融入远程桌面,画质更清晰操作更流畅
- Sator a lancé le jeu web 3 "satorspace" et a lancé huobi
- Flask搭建api服务-生成API文档
- mysql实现两个字段合并成一个字段查询
- How to implement safety practice in software development stage
- Lex & yacc of Pisa proxy SQL parsing
- 99% of users often make mistakes in power Bi cloud reports
- QML beginner
- The server is completely broken and cannot be repaired. How to use backup to restore it into a virtual machine without damage?
- What is cloud computing?
猜你喜欢

MRS离线数据分析:通过Flink作业处理OBS数据

Sator推出Web3游戏“Satorspace” ,并上线Huobi

【网络攻防原理与技术】第6章:特洛伊木马

What is cloud computing?

Sator launched Web3 game "satorspace" and launched hoobi

Skimage learning (1)

Mrs offline data analysis: process OBS data through Flink job

命令模式 - Unity

Skimage learning (2) -- RGB to grayscale, RGB to HSV, histogram matching

A tour of grpc:03 - proto serialization / deserialization
随机推荐
With the latest Alibaba P7 technology system, mom doesn't have to worry about me looking for a job anymore
《世界粮食安全和营养状况》报告发布:2021年全球饥饿人口增至8.28亿
Lex & yacc of Pisa proxy SQL parsing
Share the latest high-frequency Android interview questions, and take you to explore the Android event distribution mechanism
策略模式 - Unity
Test case management tool recommendation
Skimage learning (3) -- gamma and log contrast adjustment, histogram equalization, coloring gray images
无法链接远程redis服务器(解决办法百分百)
Solid function learning
Seaborn数据可视化
让保险更“保险”!麒麟信安一云多芯云桌面中标中国人寿, 助力金融保险信息技术创新发展
[Seaborn] implementation of combined charts and multi subgraphs
LeetCode 535(C#)
Siggraph 2022 best technical paper award comes out! Chen Baoquan team of Peking University was nominated for honorary nomination
Sator a lancé le jeu web 3 "satorspace" et a lancé huobi
A tour of grpc:03 - proto serialization / deserialization
责任链模式 - Unity
User defined view essential knowledge, Android R & D post must ask 30+ advanced interview questions
Several best practices for managing VDI
Flask build API service SQL configuration file