c++ - set 是否有可能将 std::vector 作为存储其元素的底层存储?

标签 c++ vector set

对于小型集合,std::vector 几乎肯定是最好的容器,无论对其应用何种操作。是否有可能将 std::vector 作为元素集容器的底层存储而不是涉及大量堆分配的红黑树(也许 boost 有一些东西?)还是我必须自己发明它?

由于性能原因,普通 std::vector 和 std::sort 不是一个选项,并且 std::inplace_merge 容易出现编码错误(迭代器无效等)。

编辑:澄清了问题

最佳答案

无法指定 STL 集的底层结构。充其量您可以编写一个分配器,它使用 vector 来提供 set 使用的内存,这可能是您想要的,也可能不是您想要的。

关于c++ - set 是否有可能将 std::vector 作为存储其元素的底层存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789678/

相关文章:

c++ - 我们应该在带有 char *func(char *string) 的函数中返回什么?需要简要说明这与 c 中的 char[] 有何不同?

c++ - 什么可能导致源自 fftw_destroy_plan 的段错误

r - 在整个列的 data.frame 列中获取向量的第 n 个元素 - R

algorithm - 具有 2 个唯一数字的最大连续子数组的长度

c++ - 如何在没有临时设置的情况下将设置差异 s1-s2 存储在 s1 中?

c++ - 如何更新一组 std::pair 中的成员?

rust - 有没有零拷贝的方法来找到任意数量的集合的交集?

C++ 类函数未执行

android - 如何从 JNI 调用 C++ 方法

Java OpenGL(JOGL) 对象数组和 FloatBuffer