gpt4 book ai didi

c++ - 使用值为 std::shared_ptr 的映射是否是具有多索引类列表的良好设计选择?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:54 26 4
gpt4 key购买 nike

问题很简单:我们有一个类(class),成员有 a,b,c,d...我们希望能够通过为 a 或 b 或 c 提供当前值来快速搜索(键是一个成员的值)并使用新值更新类列表 ...我想拥有一堆
std::map<decltype(MyClass.a/*b,c,d*/),shared_ptr<MyClass>> .

1) 这是个好主意吗?

2) boost multi index 是否在各个方面都优于这个手工制作的解决方案?

出于简单性/性能方面的原因,PS SQL 是不可能的。

最佳答案

  1. Boost MultiIndex 可能有一个明显的缺点,即它会尝试在集合的每次突变后使所有索引 保持最新。如果您的数据加载阶段包含许多单独的写入,这可能会造成很大的性能损失。

  2. Boost Multi Index 的使用模式可能不适合项目(成员)的编码风格(和品味...)。这应该是一个小缺点,但我想我会提到它

  3. 正如 ildjarn 提到的,Boost MI 目前还不支持移动语义

否则,我会认为 Boost MultiIndex 在大多数情况下更胜一筹,因为您不太可能达到它收到的测试量。

关于c++ - 使用值为 std::shared_ptr 的映射是否是具有多索引类列表的良好设计选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12606891/

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