C等价于C++ STL

Cod*_*lus 16 c c++ stl hashmap data-structures

可能重复:
C中的标准数据结构库?

C是否有类似于C++ STL的任何数据结构实现?特别是关联容器,哈希映射或任何其他具有大致恒定时间检索的结构?

谢谢!

pau*_*sm4 24

C 不能具有STL的"精确等价",因为C没有模板或类.

您可能对"Glib collections"库感兴趣:

  • 利用宏来生成代码和类型并不难(例如,请参阅 [facil.io C STL 库](https://github.com/facil-io/cstl))。C 比大多数人认为的更通用(如果你问我的话,它具有更好的封装性)。 (2认同)
  • 听到有人这样说真是令人耳目一新:“C 比大多数人想象的更通用(而且它有更好的封装,如果你问我的话)。”我完全同意:) (2认同)

Sam*_* S. 5

glib确实包含了GHashTables,它们基本上是键和值之间的关联--HashMap在C++中的含义.

重要的区别在于您必须使用void*存储任意数据,因为C不支持模板或泛型.缺点是编译器无法检查代码的有效性,您必须自己确保正确性.