什么是STL容器的纯C替代品?

时间:2011-05-20 16:50:44

标签: c++ c gcc stl ansi

  

可能重复:
  Container Class / Library for C

使用C ++而不是C的主要原因之一是STL提供的非常方便的容器。但是,如果我想用纯C编写代码而不必从头开始编写所有容器,我还有什么选择?

我听过(但从未使用过的)的一些是

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

对于纯C(Ansi或其他)中的容器的任何意见和/或经验将不胜感激。

2 个答案:

答案 0 :(得分:3)

我推荐GLib只是因为它有一套很好的功能,它相对成熟,稳定,便携,并且广泛使用。

答案 1 :(得分:0)

您或图书馆作家可以在每次要将其用于不同类型时编写容器等,可能将定义放入巨大的宏中,或者您可以将void *用于容器,从而失去所有希望类型安全,有时一些表现。 (C的qsort函数的效率远低于C ++的sort模板。)无法在C语言中获得C ++容器,迭代器和算法的等价物。

我对Glib知之甚少,你对Linux内核头文件中不同元素的引用有点模糊。您提到的Linux列表可能是您所获得的典型代码:没有类型安全性和一组编写良好的函数,这些函数将针对每种数据类型进行不同的命名。快速浏览一下iMatix没有透露任何容器。