Просто потому, что мне любопытно - есть ли какой-либо C-аналог функциональности STL в С++? Я видел упоминание о GTK + библиотеке под названием glib, которую некоторые люди считают заполнением счета, но есть другие библиотеки, которые предоставили бы функциональность STL в C
C Analog To STL
Ответ 1
Да, glib
- довольно хороший выбор: он включает множество утилит для манипулирования контейнерами, такими как связанные списки, массивы, хеш-таблицы и т.д. И есть также объектно-ориентированная инфраструктура под названием GObject
, которую вы можете использовать для создания объектов с сигналами и слотами в C (хотя и с довольно многословными именами функций, такими как gobject_set_property
, так как C не имеет синтаксиса для объектов). И есть также код для основных циклов, чтобы вы могли писать программы, управляемые событиями.
Дополнительная информация из wikipedia: http://en.wikipedia.org/wiki/Glib
Glib изначально был частью GTK, но код без GUI был полностью учтен, чтобы вы могли использовать его в программах командной строки: http://library.gnome.org/devel/glib/stable/
Ответ 2
Ответ 3
Хорошо, поскольку сама природа STL основана на шаблонах, которые C не имеет, было бы трудно приблизиться к STL в C. Лучшее, на что вы могли бы надеяться, это некоторые классы коллекций, которые манипулируют указателями void * с неизвестными объект.