Я принял на себя обязательство изучать C теперь, я хорош с Python/PHP/Bash, но я решил, что ограничен, не бегло говоря C. Однако я не могу предположить работать на языке без списков и хешей, возможно, я просто перехожу оружие, но конечно существуют 'стандартные' библиотеки набора. Я не вижу никого в lib стандарта GNU хотя, какие-либо предложения?
Не существует "стандартного" набора классов коллекции для C. Многие люди просто катят свои собственные по мере необходимости.
Но, конечно, есть библиотеки, восполняющие этот пробел. Например, glib предлагает связанные списки, хэш-таблицы и различные виды деревьев.
Не существует «стандартных» (как часть стандарта ISO C) контейнерных библиотек, по крайней мере, начиная с C99. Я видел несколько сторонних попыток; все имели ту или иную степень утраты.
C имеет очень примитивный и скудный инструментарий; Я сравнил программирование на C со строительством дома, используя только ручную пилу и молоток.
На самом деле нет стандартных коллекций в C. Поскольку это язык очень низкого уровня (по сравнению с C ++ и более «современными» языками)
C ++ добавляет их через Стандартную библиотеку шаблонов . Большинство «коллекций», таких как хеширование и списки, основаны на объектно-ориентированных или общих методах программирования, недоступных (кроме соглашений) в C.
Нет стандарта, но есть отличная альтернатива это намного проще, чем glib : Интерфейсы и реализации C Дэйва Хэнсона . Он включает несколько эффективных абстракций коллекций и ряд других полезных модулей. Программа бесплатна, а книгу стоит покупать.
C ниже уровня, чем вы привыкли. За пределами массива в C нет стандартных коллекций.
Может, тебе стоит попробовать заглянуть в бойкую. Хотя это не стандарт в том же смысле, что и STL для C ++, это проверенная библиотека, которая используется во многих приложениях.