c++ 什么是STL容器的纯C替代品?[duplicate]

hl0ma9xz  于 2023-03-20  发布在  其他
关注(0)|答案(2)|浏览(168)

此问题在此处已有答案

11年前关闭了。

可能重复:

Container Class / Library for C
使用C++而不是C的一个主要原因是STL提供了非常方便的容器。但是,如果我想用纯C编写代码,而不必从头开始编写所有容器,我还有什么选择呢?
我听说过(但从未使用过)的一些方法是

  • 油滑
  • iMatix标准函数库
  • 与Linux内核头文件不同的元素(例如list

如果您对纯C语言(Ansi或其他语言)中的容器有任何意见和/或经验,我们将不胜感激。

xienkqul

xienkqul1#

我之所以推荐GLib,仅仅是因为它有一组很好的特性,而且相对成熟、稳定、可移植,使用广泛。

oxf4rvwz

oxf4rvwz2#

您或库作者可以在每次要将容器用于不同类型时编写容器等,可能会将定义放入巨大的宏中,或者您可以将void *用于容器,失去了类型安全的所有希望,有时甚至失去了一些性能。(C的qsort函数的效率可能远远低于Csort模板。)在C中无法获得C容器、迭代器和算法的等价物。
我对Glib了解不多,而且您对Linux内核头文件中不同元素的引用有点含糊,您提到的Linux列表可能是您所得到的典型内容:没有类型安全,一组写得很好的函数,对每种数据类型命名不同。快速浏览一下iMatix,没有发现任何容器。

相关问题