|
|
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
По следам /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. \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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 15:21 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
собственно в чем суть вопроса ??? Никто ж не спорит что STL крутая штука и все такое. но действительно использует ее не так много народу :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 16:31 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
А я и не спрашиваю - я предлогаю пообсуждать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 16:36 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
2funikovyuri --Это насчет эффективности – для MFC что-то подобное есть? есть и родная мелкософтовская библиотека темплейтов, но можно пользовать и сторонние. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 21:07 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
--Никто ж не спорит что STL крутая штука и все такое. но действительно использует ее не так много народу :( да вроде бы все кто более-менне прилично програмирует. Собственно это само самое разумеешеся для программиста на C++ . У меня в коде пяти строк не найдется, что бы не было STL контейнеров. Вспоминаю время когда без них трахались - загубленное время жизни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 21:09 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
мы используем STL. вот только сортировку пришлось написать специализированную - она работает в 5раз быстрее стандартной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 13:30 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
Без STL невозможно эффективно работать. Я применяю и MS-контейнеры и STL, смотря что где удобней по-месту. Жду, пока "устаканиться" boost. А пока использую свою либу делегатов и events. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 10:27 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
У нас STL не в каждой 5-й, а в каждой 2-й. Потому как представить как без нее быть - никто не может. 2vdimas: А просвяти, устаканивания чего ты ждеш в boost? А то из вего буста я использовал только shared_ptr и lexical_cast. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 15:00 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
ну, мой смарт поинтер мне гораздо удобнее будет. а вообще просмотри loki на предмет, как смарт-поинтеры писать. жду я устаканивания boost как такового, ибо постоянно меняющиеся результаты по успешности компиляции не позволяют мне рисковать и юзать его в серьезных проектах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 15:17 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
JibSkeart> Я пытался ее использовть JibSkeart> но пока времени нету на ее дольнейшее изучение. А почему у тебя времени нет?.. зы: да потому, что STL не узаешь! ;) С уважением! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 17:14 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
Итак, топик несомненно полезен. Все, кто регулярно используют STL отмечают резкое сокращение времени на решение повседневных программистских задач. Это вполне логично, разве можно представить программиста на Java не знающего базовых библиотек? И что он там напрограммирует? Однако использование STL подразумевает знание принципов его построения, что само по себе поучительно. Скажу о себе, когда-то "глубокое" погружение в С++ я начал именно с изучения исходников STL. До это рассматривал С++ просто как "С с классами", что ничем не лучше того же O.Pascal. Предлагаю продолжить этот топик списком ссылок и литературы по STL: rsdn потоки неплохо о механизме шаблонов, поможет новичкам понять принципы STL и покажет как правильно использовать шаблонные классы и функции книги (очень надеюсь, что кто-нить из либителей собирать электронные книги поделиться ссылками на русскоязычные переведенные электронные варианты): Effective STL C++ Templates: The Complete Guide The C++ Standard Library: A Tutorial and Reference ------------- портал для всех и вся программистов, очень рекомендую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 07:48 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
Использую. Много. Тоже считаю загубленным время, когда пытался делать списки, векторы, етс.. сам :) Хотя. У меня вопрос. Кто-нибудь проверял на быстродействие STL со своими контейнерами? Сильно медленнее? В реал-таймовых программах его можно использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 08:30 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
2RubinDm 1 Возможно вы правы. 2 Сейчас пока бьюсь над проектом ,и не рескую использовать то что не знаю , 3 Пишу на BCB6 (слышал что STL там кривой ,правда это или неправда не незнаю , но в принципе сути это не меняет ) 4 ну и в конце концов , надо бы хотябы знать их применение. и вообще идиологии , а так как я пытался изучать метадом тыка , ничего хорошего пока из этого не вышло :) _____________ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 12:08 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
Да он простой как 2 копейки. И гибкий. Я как-то в 99-м читал книжку, читал-читал, учил-учил... потом забыл всё нафиг. Потом, недавно, сел и писать начал и всё. Всё там просто :) В принципе всё так и надо изучать - садиться и делать :) СОМ так же шустро пошёл. Хотя у всех, наверно, по-разному... А я использую книги как справочники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 12:39 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
А моя проблема в том что в нашей дыре (далекой галактики) книг таких специализированых не найти :((( _____________ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 17:03 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
Книги, рекомендуемые 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 19:23 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
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 и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 10:57 |
|
||
|
Используете ли вы STL
|
|||
|---|---|---|---|
|
#18+
Интересно – каково будущее у generic programming и STL? Ведь, например в Java и.Net его нет. Т.е. их создатели не посчитали generics такой уж важной и полезной концепцией. Так будет же скоро. C# Programming Language Future Features An Introduction to C# Generics Возможно, отчасти такое решение связано со сложностью и противоречивостью реализации шаблонов – ведь в C++ их реализация имеет целый ряд недостатков, например, template instantiating и .DLL и т.д. в .Net их реализация будет имееть целый ряд ограничений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2003, 11:22 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32337926&tid=2035713]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 370ms |

| 0 / 0 |
