【问题标题】:Fast algorithm to allocate and release integer-like handles in C++在 C++ 中分配和释放类整数句柄的快速算法
【发布时间】:2021-04-15 22:25:53
【问题描述】:

我需要一个可以分配唯一整数(句柄)并将其分配给某个对象的类。 然后释放它以便以后使用。 这个算法应该很快。我应该使用什么数据结构? vector 访问数据速度快,但擦除或添加时间长(但这也很重要),list 访问数据时间长。 也许你知道一些好的实现? 提前致谢!

【问题讨论】:

  • 不确定您的用例是什么,但malloc(1)new char; 将返回一个唯一地址,直到该分配的单元被释放或删除。
  • 如果只有一个节点,为什么链表访问速度会很慢?
  • 您是否希望管理 1,000 个这样的句柄?还是一百万?还是更多?
  • 听起来你在找std::mapstd::unordered_map
  • 为什么需要使用句柄而不是指针?

标签: c++ list algorithm vector handle


【解决方案1】:

我会简单地使用 64 位整数。对于分配,我会使用一个简单的计数器。要解除分配...好吧,我会简单地忽略释放句柄的请求。

您可以忽略重新分配,因为使用 64 位句柄,您可以一次分配数十年的句柄,甚至不会用完新的句柄来分配。

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多