Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отношение к STL 
:(
    Опции темы
 
Программируете ли вы с помощью STL?
А как же без неё, ну и вопрос.. [ 27 ]  [35.06%]
Да [ 26 ]  [33.77%]
Приходится программировать, но не хочу [ 4 ]  [5.19%]
Нет [ 12 ]  [15.58%]
Что это? [ 8 ]  [10.39%]
Всего проголосовавших: 77
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
Fire-Plug
Дата 23.4.2005, 04:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2005

Репутация: -1
Всего: 0



Цитата
что std::string не обрабатывает уникод

Кроме std::string, имеется также std::wstring. Оба этих типа есть просто:
Код

typedef basic_string<char>  string;

typedef basic_string<wchar_t> wstring;
// где wchar_t
typedef unsigned short wchar_t;
Если почему-то ширины wchar_t недостаточно, воспользуйтесь преимуществами шаблонных классов и объявите что-то вроде
Код

typedef basic_string<unsigned long> swstring; // sw - superwide



--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
Fire-Plug
Дата 23.4.2005, 04:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2005

Репутация: -1
Всего: 0



Цитата
QString предлагает очень полезные возможности, например, arg(), sprintf(), section(), simplifyWhiteSpace(), toInt(), подмножество setNum() и конечно же поддержку регулярных выражений,

Очччччень напоминает "любимый" до невозможности CString.
Идея STL как раз и состоит в том, чтобы иметь сравнительно легкий класс строки, реализующий принципиальную функциональность, к-рая будет востребована на 75-90%, а громоздкие и специальные операции возложить на алгоритмы.
Известно немало библиотек, включая CRT, способных выполнять перечисл. выше операции. В частности, библ. Boost-a regex обрабатывает регулярные выражения. Большинство операций требует только 1 входной аргумент типа const char *. Зачем, спрашивается, создавать очередного монстра, подобного CString?
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
chipset
Дата 23.4.2005, 05:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



ИМХО, введение регулярных выражений в такой простейший класс string - глупость чистой воды.
Вы часто используете регекспы там где используете стринги? Не верю smile
Добавлено @ 05:57
Цитата(Fire @ 22.4.2005, 18:34)
Очччччень напоминает "любимый" до невозможности CString.

Насколько я помню, регексов там не было.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Fire-Plug
Дата 23.4.2005, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2005

Репутация: -1
Всего: 0



Цитата(chipset @ 23.4.2005, 05:56)
Насколько я помню, регексов там не было.

И слава богу. И так монстр.
Я вообще-то не о конкретной реализации говорил, а о подходе - запихнуть в один класс все, что можно только придумать и предел простой вероятности использования чего будет стремиться к нулю.
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
AISIN
Дата 24.4.2005, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 27.1.2005
Где: Пушкино

Репутация: нет
Всего: 1



stl конечно хорошо, но нужно уметь и с ним и без него работать. Т. к. всякое может быть! Ведь на смену мтарым языкам приходят новые и кто знает может лет через 10 stl в С++ не будет! Хотя врятли!!!
--------------------
Внимание!!! Внимание!!!Запущена программа по завоеванию мира!!!Выполненно 0,000000000000000000000000000000000000000000000000000002%
PM MAIL   Вверх
bel_nikita
Дата 24.4.2005, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата
stl конечно хорошо, но нужно уметь и с ним и без него работать
Вся проблема в том, что с STL работать не умеют smile
Цитата
кто знает может лет через 10 stl в С++ не будет!
Вот, С++ как такового может и не быть, а STL останется smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
chipset
Дата 24.4.2005, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Цитата(AISIN @ 24.4.2005, 13:13)
tl конечно хорошо, но нужно уметь и с ним и без него работать. Т. к. всякое может быть! Ведь на смену мтарым языкам приходят новые и кто знает может лет через 10 stl в С++ не будет! Хотя врятли!!!

А никто и не говорит что следует забить на всё и программить только на STL. Просто надо использовать то что лучше.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
bel_nikita
Дата 10.6.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Подниму-ка топик, а то последнее время слышу, что многие негативно относятся к STL

P/S/: Вдобавок: Template + STLport = +25% производительности

Это сообщение отредактировал(а) bel_nikita - 10.6.2005, 21:57


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
yaja
Дата 11.6.2005, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 30.3.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 1



Давно хотел узнать мнение настоящих программистов по поводу этого вопроса.
ИМХО, штука эта очень "страшная", огромное количество вещей, работа которых не всегда понятна (имеется ввиду то, а что именно кроется за вызовом той или иной функции, что кроется в глубинах STL). А вдруг там баги?? Ведь никто не может поручиться за это. Некоторые вещи STL просто безобразны, например строки и потоки. Их скорость работы просто потрясает...
И лично мое непрофессиональное мнение, программист должен уметь собирать велосипед за быстрые сроки, а не изобретать его.
PM MAIL   Вверх
Void
Дата 12.6.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 40
Всего: 173



Цитата(yaja @ 11.6.2005, 21:55)
ИМХО, штука эта очень "страшная", огромное количество вещей, работа которых не всегда понятна (имеется ввиду то, а что именно кроется за вызовом той или иной функции, что кроется в глубинах STL).

Взять исходники и посмотреть smile Тем более, они не очень большие.
Вопрос можно? Когда вы вызываете какую-нибудь функцию ОС, вам не страшно из-за того, что вы не знаете (ну или по крайней мере не досконально знаете), что там внутри происходит? Это вообще, имхо, очень важная проблема - доверие к чужому коду.
Цитата(yaja @ 11.6.2005, 21:55)
А вдруг там баги??

Да не вдруг, а точно smile Но не в STL, а в конкретной реализации (например, печально известная Dinkumware из VC6). И учитывая число программистов, использующих ее, баги эти, как правило, хорошо известны, равно как и способы их объезда.
Цитата(yaja @ 11.6.2005, 21:55)
Некоторые вещи STL просто безобразны, например строки и потоки. Их скорость работы просто потрясает...

Насчет строк - это особый вопрос, неоднократно поднимавшийся в c.l.c.m и RSDN. Я так понял, что основная проблема - излишнее копирование при операциях над строками, однако сделать строковый класс с подсчетом ссылок и copy on write, сохранив потокобезопасность, очень сложно.
По поводу потоков: часто вам от I/O требуется такая скорость, что они не справляются?
Цитата(yaja @ 11.6.2005, 21:55)
И лично мое непрофессиональное мнение, программист должен уметь собирать велосипед за быстрые сроки, а не изобретать его.

Не уловил разницы...


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
ManiaK
Дата 12.6.2005, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Хорошо. В последний раз попытаюсь выразить свои чувства.

Мне нравится язык С++. Точно также как мне нравится классическая физика - я её понимаю и для меня она логична. НО! Чем отличается техник от наукаря - первый пользуется формулами из справочника, другой - может эти формулы вывести сам (хотя не всегда это делает - только когда необходимо). Чисто эстетически я люблю, когда в моей программе как можно больше моего кода. Я недоверчивый человек, и могу признать, что в какой-либо определённой библиотеке минимум глюков, но я всегда буду стараться обойти эту библиотеку. Многие здесь работают в команде - тут я согласен: велосипеды запрещены. Но лично я всегда программировал (и, как предполагаю, в будущем ситуация не изменится) один, код всех моих программ известен только мне (ну и ещё моему отцу). Поэтому, извините, доводы вроде "лучше не изобретать велосипедов" отметаются. Мне это приятней - значит для меня это лучше! В чужой монастырь со своими законами не лезут, никому я не мешаю.
Теперь мне скажут: "А вдруг?". Действительно, вдруг я вынужден буду когда-нибудь работать в команде? И что?! Я уже разработал свою библиотеку, работающую аналогично тому же STL; неужели вы думаете, что я не смогу за полчаса разобраться в ней? (образно говорю, STL-то я знаю). Могу. И даже больше скажу: разработать что-то своё с нуля намного сложнее, чем "почитать сорсы" и потому я заранее буду круче всех тех, кто занимается последним.
Вопрос только в одном: кому-то оно надо и кто-то имеет время на это, а другим - увы.
P.S. На критику не отвечаю, надоело smile
PM MAIL WWW   Вверх
bel_nikita
Дата 12.6.2005, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



ManiaK
Цитата
Могу. И даже больше скажу: разработать что-то своё с нуля намного сложнее, чем "почитать сорсы" и потому я заранее буду круче всех тех, кто занимается последним.

Это так кажется. И это естественное явление, если можно так выразиться. Через это все проходили. Я тоже в молодости был крут в программировании smile Казалось, что горы сверну. Но как только пришел на работу, получил реальные проекты и посмотрел на настоящий, красиво написанный код - я понял, что ничего не знаю. Тихо, мирно купил хороших книг по С++ и начал все заново smile
И изобретать велосипеды это тоже естественно. Через это все проходили. Но у нас, например, с тобой отличаи в программировании. У нас разные подходы. Только, не думай, что тебя кто-то считает не компетентным в чем-то, нет.
Тебе за программинг платят? Я думаю, что пока нет. Поэтому и возможность изобретать велосипеды есть. А мне платят. И чем быстрее я закончу проект или поставленную задачу тем лучше для меня. Начальству абсолютно не интересно, как этого я этого добился, как решал поставленные задачи. Их только волнует, грубо говоря, работает или не работает. Но и обязательно условие - это сопровождение кода. Могу написать я, а сопровождать код(добавлять, фиксить баги и т.д.) будет совсем другой человек. Так же я использую сторонние библиотеки. И если каждый из команды начнет изобретать свои велосипеды, потом отлаживать их, потом разбираться в чужих велосипедах - уйдет достаточно много времени. Чем больше времени - тем хуже нам smile Так что мой выбор STL. Эта вещица стандартизированная и если, что-то не понятно, то можно почитать и разобраться. А то, что в реализациях есть баги... нормально явление smile В вашем коде сколько баг? smile Выловить и исправить баги в данном случаи намного быстрее, чем написать свой велосипед, т.к. STL - имеет достачное распространение. Я например, не знавши STL , уже знал, что есть баги в VC от Dinkumware.
В общем, STL - ускоряет разработку в разы и нет нужды в низкокачественных велосипедах.
Ну, а у кого есть время на велосипеды - флаг вам в руки! smile У меня этого времени уже нет smile

З.Ы.: Только без обид smile

З.Ы.Ы: написал, так написал...


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Coocky
Дата 13.6.2005, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



НЕНАВИЖУ, еще с консольного С++ smile
Всегда все делал руцями.
Когда перешел к МФС, ВООБЩЕ забыл.
Это мечта АПИ_шников smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
chipset
Дата 13.6.2005, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Если человеку платят за то что он изобретает свои велосипеды то это проблемы работодателя.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
bel_nikita
Дата 13.6.2005, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата
Если человеку платят за то что он изобретает свои велосипеды то это проблемы работодателя
Это значит, что тим-лидер не знает, какой-то библиотеки smile Кому охота переучиваться?


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0909 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.