C/С++ эквиваленты стандартной библиотеки Python
Я сильно зависеть от стандартной библиотеки Python, как для полезных структур данных, так и для манипуляторов (например, collections
и itertools
) и для служебных программ (например, optparse
, json
и logging
), чтобы пропустить шаблон и просто получить все готово. Просматривая документацию по стандартной библиотеке С++, она, по-видимому, полностью связана с структурами данных, что мало связано с "включенными батареями" в стандартной библиотеке Python.
Библиотека Boost - это единственная библиотека библиотеки С++ с открытым исходным кодом, которая, как мне известно, похожа на стандартную библиотеку Python, хотя в ней есть библиотеки утилиты, такие как поддержка регулярных выражений, большая часть которых также посвящена структурам данных. Я просто очень удивлен, что даже что-то столь же простое, как уверенный синтаксический анализ и запись CSV файла, сделанный восхитительно простым с Python csv
module, ваш собственный в С++ (даже если вы используете некоторую библиотеку разбора Boost).
Существуют ли другие библиотеки с открытым исходным кодом для С++, которые предоставляют "батареи"? Если нет, что вы делаете в качестве программиста на С++: охотитесь за отдельными библиотеками утилиты (и если да, как) или просто сворачивайте свои собственные (что кажется раздражающим и расточительным)?
Ответы
Ответ 1
Библиотека Poco больше похожа на стандартные библиотеки других языков.
Собственно, логотип веб-сайта Poco гласит: "С++ теперь поставляется с включенными батареями!", что, похоже, именно то, о чем вы просите.
Мне не понравилось, когда я пытался, потому что я нашел его слишком похожим на C и со слишком большим количеством зависимостей между частями (сложно выделить только нужные функции).
Но есть много людей и фирм, которые используют его, поэтому мне кажется, что я в меньшинстве, и вы, возможно, найдете его очень полезным.
Кроме того, как отмечали другие, для структур данных, парсеров и, действительно, интерфейса для Python!, и таких вещей, проверьте Boost.
Приветствия и hth.,
Ответ 2
В то время как С++ предлагает множество удобств, дополненных OO, он хранит очень простую стандартную библиотеку. С++ имеет STL и Boost. Они очень хорошие и имеют больше, чем просто структуры данных.
Если ваши потребности - это функции более высокого порядка для прототипирования или приложения без интенсивных (относительных сроков) требований скорости, то C/С++, вероятно, не подходит для вас. Я считаю, что вы обнаружите, что для большинства проектов языки высокого уровня будут достаточно быстрыми для ваших нужд. Если вы работаете над приложением, для которого требуется скорость C/С++ (и сопутствующими стандартными отклонениями), вы должны, вероятно, потратить свое время на тщательный выбор каждой отдельной библиотеки, которую вы будете использовать.
Ответ 3
http://beta.boost.org/community/sandbox.html
http://www.boostpro.com/vault/
также вы можете google для "boost + bar", например
Ответ 4
http://www.boost.org/doc/libs/1_45_0/?view=categorized
Boost - это не только структура данных - у него много требуемых батарей - разбор, потоки, коллекции, протоколирование и т.д.
Ответ 5
С C и С++ вы обычно не найдете библиотеку "сделай все", вместо этого вы будете использовать отдельные библиотеки, которые будут делать разные вещи. Вы можете использовать одну библиотеку, которая выполняет JSON-синтаксический анализ, тот, который выполняет криптографию, тот, который выполняет протоколирование и т.д.
Boost и Qt являются единственными, которые были бы более похожими на библиотеку типа "делать все".