Какой смысл в STL? - PullRequest
       11

Какой смысл в STL?

8 голосов
/ 25 марта 2010

Я программирую на С ++ уже около года, и когда я ищу, я вижу много ссылок на STL.

Может кто-нибудь сказать мне, что он делает?

а преимущества и недостатки этого?

и что это мне дает за борланды VCL или MFC?

спасибо

Ответы [ 9 ]

23 голосов
/ 25 марта 2010

Это стандартная библиотека C ++, которая предоставляет вам всевозможные очень полезные контейнеры, строки, алгоритмы для управления ими и т. Д.

Термин «STL» устарел ИМХО, то, что раньше было STL, стало большой частью стандартной библиотеки для C ++.

Если вы занимаетесь какой-либо серьезной разработкой на C ++, вам нужно быть знакомым с этой библиотекой и, предпочтительно, с библиотекой boost . Если вы еще не используете его, вы, вероятно, работаете на неправильном уровне абстракции или ограничиваетесь небольшим подмножеством C ++.

4 голосов
/ 25 марта 2010

STL обозначает стандартную библиотеку шаблонов. Это была библиотека, разработанная главным образом Степановым и Ли, которая затем была принята как часть стандартной библиотеки C ++. Термин постепенно становится бессмысленным, но охватывает следующие части Стандартной библиотеки:

  • контейнеры (векторы, карты и т. Д.)
  • итераторы
  • алгоритмы

Если вы называете себя программистом C ++, вы должны быть знакомы со всеми этими концепциями и их реализацией в стандартной библиотеке.

3 голосов
/ 25 марта 2010

STL - это стандартная библиотека шаблонов. Как и любая библиотека, это набор кода, который облегчает вашу жизнь, предоставляя хорошо протестированный и надежный код для повторного использования.

  1. Нужна коллекция (карта, список, вектор и т. Д.), Они в STL
  2. Нужно работать с коллекцией (for_each, copy, transform и т. Д.), Которая находится в STL
  3. Нужно сделать ввод / вывод, для этого есть классы.

Преимущества

1, вам не нужно повторно внедрять стандартные контейнеры (потому что вы все равно ошибетесь)

Прочтите эту книгу Николая М. Йозуттиса, чтобы узнать больше о STL, это лучший справочник по STL.

2 голосов
/ 25 марта 2010

Предоставляет общие полезные инструменты для программиста! Итераторы, алгоритмы и т. Д. Зачем изобретать велосипед?

1 голос
/ 25 марта 2010

"плюсов и минусов" по сравнению с чем? Чтобы написать весь этот код самостоятельно? Разве это не очевидно? Имеет отличные коллекции и инструменты для работы с ними

0 голосов
/ 25 марта 2010

Это дает вам еще одну аббревиатуру, которую можно бросить на коктейльных вечеринках.

Серьезно, ознакомьтесь со вступительными документами, например, с. со статьей Википедии о STL .

0 голосов
/ 25 марта 2010

Это стандартная библиотека шаблонов

Это набор функций и классов, которые помогут вам сэкономить много времени.

Они предназначены для использования шаблонов, в которых вы определяете функцию, но не определяете, с каким типом данных она будет работать.

например, вектор более или менее позволяет вам иметь динамические массивы. когда вы создаете его экземпляр, вы говорите, для какого типа вы хотите, чтобы он работал. Это может быть даже ваш собственный тип данных (класс).

Трудно подумать, но он очень мощный и может сэкономить вам массу времени.

Читайте об этом сейчас! Вы хотите сожалеть об этом.

0 голосов
/ 25 марта 2010

Википедия имеет хороший обзор: http://en.wikipedia.org/wiki/Standard_Template_Library

STL исправляет один большой недостаток C ++ - отсутствие стандартного строкового типа. Это вызывает неисчислимые головные боли, поскольку существуют тысячи реализаций строк, которые плохо работают вместе.

0 голосов
/ 25 марта 2010

STL имеет Итераторы . Конечно, коллекции и прочее полезны, но мощные итераторы гигантские, и, по моему скромному мнению, остальные бледнеют в сравнении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...