gpt4 book ai didi

c++ - 按值删除 map 元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:05 27 4
gpt4 key购买 nike

我会保持简短。

我试图在字符串和对象指针之间保留一个映射,因此,我使用 std::map。我有一个管理器,它是一个跟踪 map 的全局类,每当调用对象的析构函数时,它都会告诉管理器它已被删除。

我能想到的唯一方法就是在 map 上搜索对象。这个问题有有效的STL解决方案吗?是否存在可以高效地通过键进行搜索的 map ?

最佳答案

不,除了通过比较值进行迭代之外,没有一种有效的方法可以使用 std::map 执行此操作。

然而,大多数情况下,值的键可以从值本身计算得出。例如,使用 Person 对象的 Name 属性作为键。管理器是否可以存储键/值对列表而不是值本身。这将解决您的问题,而无需重写新算法。

或者您可以在管理器类上保留一个反向映射。本质上是关键值。这样您就可以使用它来计算稍后要删除的 key 。

关于c++ - 按值删除 map 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922368/

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