gpt4 book ai didi

c++ - Unordered_map 产生二级键

转载 作者:行者123 更新时间:2023-11-30 03:31:07 26 4
gpt4 key购买 nike

我将字符串用作我的 unordered_map 的一种键,但我是否可以关联一个辅助唯一键,独立 来自主键,所以我可以使用第二个键执行查找操作吗?

我在想 key 可能是内部哈希算法得出的哈希数。

我想在我保存的结构中包含一个 id(每次增加 1),但话又说回来,我必须先查找作为字符串的键。

这背后的原因:我想制作一个列表,在 unordered_map 中加入一些元素,但是在列表中保存字符串而不是保存 int长长。 (我宁愿不使用指针,而是使用簿记风格的过程)。

最佳答案

您不能使用内部哈希算法得出的哈希值,因为它可能会随着表大小的增长而更改数字。这称为重新散列。也不能保证哈希值是唯一的(它们肯定不会)。

保留指向列表中元素的指针会工作得很好,因为 unordered_map不会使指针无效。但是删除元素会很困难。

Boost 具有 multi_index_container ,它提供了许多有用的类似数据库的功能。它将非常适合您的任务。

如果你不想使用 Boost,你可以使用 unordered_map具有唯一的整数索引,和另一个 unordered_map它保持string->index用于按字符串键搜索的对。删除也很困难,因为要么每次删除记录时检查所有列表,要么每次遍历列表时检查记录是否仍然存在。

关于c++ - Unordered_map 产生二级键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44464708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com