相当于C STL的C

C equivalent of C++ STL

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Standard data structure library in C?

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

谢谢!


C不能具有STL的"完全等效",因为C没有模板或类。

您可能对" Glib集合"库感兴趣:

  • http://www.ibm.com/developerworks/linux/tutorials/l-glib/

  • Gnome Glib:http://developer.gnome.org/glib/stable/

  • GNU Gnulib:http://www.gnu.org/software/gnulib/


glib确实包含GHashTable,它们基??本上是键和值之间的关联-HashMap在C语言中的作用。

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


您实际上可以在C中实现自己的。创建一个结构体,为其提供指向其父级的指针,并实现一个返回指向该结构体实例的指针的函数,并且您在C中拥有类。如果您有时间并且知道的话,您可以实际进行尽可能多的尝试怎么做。


C永远不会有那样的东西,因为它没有任何必需的功能,尤其是模板。