powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Используете ли вы STL
22 сообщений из 22, страница 1 из 1
Используете ли вы STL
    #32337926
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По следам /topic/59556\r
\r
Хотелось бы услышать здесь мнения тех кто с ней работает – их мысли о ее будущем, о ее плюсах и минусах. А пока свои пять копеек…\r
\r
Что такое Standard Template Library и зачем оно надо\r
\r
http://www.cs.rpi.edu/projects/STL/htdocs/node1.html#stlwhat \r
Интересно – насколько много программистов на C++ сейчас ее реально используют? А ведь не так давно она произвела настоящую революцию в программировании на C++. Сам Страуструп (по словам создателя STL Александра Степанова) ввел в язык шаблоны именно для реализации generic programming – основной концепции STL. И что мы имеем? Большинство прикладников сейчас про нее только слышали. В чем же причина такой низкой популярности?\r
\r
С самого своего появления STL была революционна – она пример не просто библиотеки классов, а нового способа писать на C++. Кроме того, в нее было заложены огромное количество идей – ранее широко не использовавшихся в прикладном программировании. Люди, которые ее сделали – сделали ее хорошо – что достаточно редко сейчас встречается.\r
\r
Прежде всего, C++ нужны были базовые классы контейнеров и коллекций и большая часть классов STL – это именно классы-контейнеры. Но в отличии от традиционного подхода (та же MFC, или VCL) эти контейнеры во-первых не зависят от типа (благодаря шаблонам) – во вторых используют концепцию итераторов – т.е. объектов позволяющих перемещаться по коллекции\r
\r
A key factor in the design of STL is the consistent use of iterators, which generalize C++ pointers, as intermediaries between algorithms and containers. \r
http://www.cs.rpi.edu/projects/STL/htdocs/node53.html#stliterators \r
\r
Код: plaintext
1.
2.
3.
4.
5.
6.
Vector<int> IntVector;\r
…\r
Vector<int>::iterator iter = IntVector.begin();\r
\r
iter ++;\r
\r
int val = * iter;
\r
\r
Введение итераторов унифицировало процедуру доступа к элементам коллекции. Для программиста теперь было не важно – работает он с массивом или со списком. Это в свою очередь позволило писать алгоритмы, не привязанные к конкретным классам-коллекциям. Например – вы можете написать алгоритм, который ищет элемент в контейнере – и он будет работать с любым контейнером, предоставляющим необходимые классы итераторов. Т.е. это позволило смотреть на алгоритмы как на объекты-управления (например, алгоритм find).\r
\r
Затем – обобщение понятия функции – в STL это объект, который ведет себя как функция – т.е. у него перегружен оператор (). Теперь стало возможным написать еще более общие алгоритмы – например find_if – у которого в качестве критерия поиска используется не какое-нибудь конкретно значение элемента – а объект-функция (в терминологии STL – functor).\r
\r
Еще пример – это конструкция foreach – в C++ STL – это класс-алгоритм, для которого действие, которое надо выполнить с каждым элементом – это класс-функтор. Попробуйте на Pascal написать свою языковую конструкцию, да еще и безопасную с точки зрения типов – а на C++ это можно – создатели STL это показали.\r
\r
Сложность и стоимость алгоритмов STL можно оценить (http://www.sgi.com/tech/stl/complexity.html). Это насчет эффективности – для MFC что-то подобное есть? \r
\r
За время своего существования STL развилась в огромное количество прикладных классов\r
http://www.stl-port.org \r
http://www.boost.org \r
http://www.sgi.com/tech/stl/ \r
http://www.sgi.com/tech/stl/other_resources.html
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338027
123456789098
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
собственно в чем суть вопроса ???
Никто ж не спорит что STL крутая штука и все такое.
но действительно использует ее не так много народу :(
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338036
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я и не спрашиваю - я предлогаю пообсуждать
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338150
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пытался ее использовть
но пока времени нету на ее дольнейшее изучение.



_____________
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338296
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2funikovyuri
--Это насчет эффективности – для MFC что-то подобное есть?

есть и родная мелкософтовская библиотека темплейтов, но можно пользовать и сторонние.
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338299
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Никто ж не спорит что STL крутая штука и все такое.
но действительно использует ее не так много народу :(

да вроде бы все кто более-менне прилично програмирует.

Собственно это само самое разумеешеся для программиста на C++ .

У меня в коде пяти строк не найдется, что бы не было STL контейнеров.

Вспоминаю время когда без них трахались - загубленное время жизни
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338424
maratka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мы используем STL. вот только сортировку пришлось написать специализированную - она работает в 5раз быстрее стандартной.
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338622
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без STL невозможно эффективно работать.
Я применяю и MS-контейнеры и STL, смотря что где удобней по-месту.

Жду, пока "устаканиться" boost.
А пока использую свою либу делегатов и events.
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338701
Amdei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас STL не в каждой 5-й, а в каждой 2-й.
Потому как представить как без нее быть - никто не может.

2vdimas: А просвяти, устаканивания чего ты ждеш в boost?
А то из вего буста я использовал только shared_ptr и lexical_cast. :)
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338708
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, мой смарт поинтер мне гораздо удобнее будет.

а вообще просмотри loki на предмет, как смарт-поинтеры писать.

жду я устаканивания boost как такового, ибо постоянно меняющиеся результаты по успешности компиляции не позволяют мне рисковать и юзать его в серьезных проектах.
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338770
RubinDm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JibSkeart> Я пытался ее использовть
JibSkeart> но пока времени нету на ее дольнейшее изучение.

А почему у тебя времени нет?..
зы: да потому, что STL не узаешь! ;)
С уважением!
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338908
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак, топик несомненно полезен.

Все, кто регулярно используют STL отмечают резкое сокращение времени на решение повседневных программистских задач. Это вполне логично, разве можно представить программиста на Java не знающего базовых библиотек? И что он там напрограммирует?

Однако использование STL подразумевает знание принципов его построения, что само по себе поучительно. Скажу о себе, когда-то "глубокое" погружение в С++ я начал именно с изучения исходников STL. До это рассматривал С++ просто как "С с классами", что ничем не лучше того же O.Pascal.

Предлагаю продолжить этот топик списком ссылок и литературы по STL:
rsdn
потоки
неплохо о механизме шаблонов, поможет новичкам понять принципы STL и покажет как правильно использовать шаблонные классы и функции

книги (очень надеюсь, что кто-нить из либителей собирать электронные книги поделиться ссылками на русскоязычные переведенные электронные варианты):
Effective STL
C++ Templates: The Complete Guide
The C++ Standard Library: A Tutorial and Reference

-------------
портал для всех и вся программистов, очень рекомендую
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338927
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую. Много. Тоже считаю загубленным время, когда пытался делать списки, векторы, етс.. сам :)

Хотя. У меня вопрос. Кто-нибудь проверял на быстродействие STL со своими контейнерами? Сильно медленнее? В реал-таймовых программах его можно использовать?
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32338972
Shkurenko Alexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32339211
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2RubinDm

1 Возможно вы правы.
2 Сейчас пока бьюсь над проектом ,и не рескую использовать то что
не знаю ,
3 Пишу на BCB6 (слышал что STL там кривой ,правда это или неправда не незнаю , но в принципе сути это не меняет )
4 ну и в конце концов , надо бы хотябы знать их применение.
и вообще идиологии , а так как я пытался изучать метадом тыка ,
ничего хорошего пока из этого не вышло :)


_____________
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32339262
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да он простой как 2 копейки.
И гибкий.

Я как-то в 99-м читал книжку, читал-читал, учил-учил... потом забыл всё нафиг. Потом, недавно, сел и писать начал и всё. Всё там просто :)

В принципе всё так и надо изучать - садиться и делать :) СОМ так же шустро пошёл.
Хотя у всех, наверно, по-разному... А я использую книги как справочники.
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32339428
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я - справочники как книги

...
Рейтинг: 0 / 0
Используете ли вы STL
    #32339741
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А моя проблема в том что в нашей дыре (далекой галактики)
книг таких специализированых не найти :(((
_____________
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32339933
hypnotic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Книги, рекомендуемые vdimas, на русском и бумаге:
http://www.ozon.ru/context/detail/id/1253685/
http://www.ozon.ru/context/detail/id/1521729/
http://www.piter.com/book_about.phtml?id=978594723635&web_ok=yes
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32340317
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Lepsik

есть и родная мелкософтовская библиотека темплейтов, но можно пользовать и сторонние.

Что имеется в виду под родной? У них реализация STL от HP

2Amdei

А то из всего буста я использовал только shared_ptr и lexical_cast. :)

Так же там есть
RegEx++ - библиотека для работы с регулярныи выраженияи

Filesystem Library
Boost.Threads
Boost.Function
Improved Function Object Adapters

А также куча всего другого полезного http://www.boost.org/libs/libraries.htm


2JibSkeart

Пишу на BCB6 (слышал что STL там кривой ,правда это или неправда не незнаю , но в принципе сути это не меняет )

Borland Builder 6 поставляется вместе с версией STL от http://www.stlport.org/product.html - а это одна из лучших реализаций STL


2Shkurenko Alexander

Действительно – отличная ссылка


Интересно – каково будущее у generic programming и STL? Ведь, например в Java и.Net его нет. Т.е. их создатели не посчитали generics такой уж важной и полезной концепцией. Возможно, отчасти такое решение связано со сложностью и противоречивостью реализации шаблонов – ведь в C++ их реализация имеет целый ряд недостатков, например, template instantiating и .DLL и т.д.
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32340373
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно – каково будущее у generic programming и STL? Ведь, например в Java и.Net его нет. Т.е. их создатели не посчитали generics такой уж важной и полезной концепцией.

Так будет же скоро.

C# Programming Language Future Features
An Introduction to C# Generics

Возможно, отчасти такое решение связано со сложностью и противоречивостью реализации шаблонов – ведь в C++ их реализация имеет целый ряд недостатков, например, template instantiating и .DLL и т.д.

в .Net их реализация будет имееть целый ряд ограничений.
...
Рейтинг: 0 / 0
Используете ли вы STL
    #32340516
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2snake

Да, я тоже за ними слежу - скорее бы :) На мой взгляд - C# generics - это огромный шаг вперед - как раз то что нужно
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Используете ли вы STL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]