只是因为我很好奇——是否有任何 C 类比 C++ 中 STL 的功能?我已经看到有人提到了一个名为 glib的GTK+库,一些人认为它可以满足要求,但是还有其他库可以在 C 中提供 STL 功能吗?
Onorio Catenacci
问问题
7754 次
4 回答
28
是的,glib
这是一个不错的选择:它包含许多用于操作容器的实用程序,如链表、数组、哈希表等。还有一个面向对象的框架GObject
,您可以使用它来制作带有信号和插槽的对象C(尽管函数调用名称相当冗长,例如gobject_set_property
,因为 C 没有任何对象语法)。并且还有主循环的代码,因此您可以编写事件驱动的程序。
更多信息参见维基百科:https ://en.wikipedia.org/wiki/GLib
Glib 最初是 GTK 的一部分,但非 GUI 代码已被完全排除,以便您可以在命令行程序中使用它:http: //library.gnome.org/devel/glib/stable/
于 2008-10-14T14:52:19.787 回答
4
于 2011-04-14T13:57:59.520 回答
3
添加另一个选项(完全公开,我是作者);如果您可以编译和链接 C++,您可以查看libcdada
,它具有纯 C API,但libstdc++
用作大多数容器的后端:
于 2020-07-24T09:45:44.413 回答
2
好吧,由于 STL 的本质是基于 C 没有的模板,因此甚至很难接近 C 中的 STL。您可能希望的最好的结果是一些集合类,它们操纵指向未知对象的 void* 指针。
于 2008-10-14T14:51:49.057 回答