std :: set和boost :: container :: set之间的区别

Łuk*_*iak 6 c++ boost c++11

std :: setboost :: container :: set之间的主要区别是什么?

Mik*_*son 7

增压容器和标准容器之间的主要区别在于增压容器允许不完整的类型.当实现依赖于底层容器组合的更复杂的数据结构时,这会产生巨大的差异.

boost容器和标准容器的特定实现之间可能存在性能差异.但这可能是两种方式.

编辑:这里有一些关于set/map容器的附加说明(参见参考资料):

[多]集合/映射容器是大小优化的,在父指针中嵌入红黑树节点的颜色位.[multi] set/map容器不使用递归函数,因此避免了堆栈问题.

  • 您可能有另一个区别:无论您使用何种编译器/平台,boost容器的实现都是全局相同的,而标准库版本通常会通过特定的优化来实现.这不是好事也不是坏事,只取决于你真正需要的是什么. (2认同)