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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C && C++ 
:(
    Опции темы
HellStranger
Дата 2.8.2010, 17:21 (ссылка)    | (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(bsa @  2.8.2010,  15:53 Найти цитируемый пост)
Например, строки. когда тебе надо сравнить две строки, strcmp будет перебирать все символы, пока не встретятся различия, а std::string может (при желании его разработчиков, конечно) для начала просто сравнить размеры строк - это операция с константной сложностью, в отличие, от strlen. Сортировка с помощью std::sort работает быстрей, чем через qsort.


Вообще-то при сравнении строк сравнивать первым делом их длину как-то не очень умно, "abcdefghij" < "cdefghij", причём длина?.. Да и немного настораживает уверенность по поводу реализации различных алгоритмов в стандартных бибилиотеках разных производителей... Попахивает ОБС (Одна Баба Сказала). Что касается сравнения строк, тоя  уже писал, что strcmp убивает string::compare в десятки раз... qsort- сильно зависит от того, что сортируем, все возмножные варианты не перебрать, но специалдьно для тебя проведу пару тестов и отпишусь. smile

Добавлено @ 17:25
Цитата(bsa @  2.8.2010,  15:53 Найти цитируемый пост)
Я прекрасно знаю Си (очень на это надеюсь).


Ясно... Человек, который знает всё- глупец, не спорь с ним... 

Извиняюсь, что пронёс полную ахинею по поводу C... Ты во всём абсолютно прав! Я беру трубку и идут курить в корридоре...  smile

Добавлено @ 17:26
Цитата(bsa @  2.8.2010,  15:53 Найти цитируемый пост)
И вообще, ты хоть сам С++ знаешь? Или критикуешь его по типу: "не читал, но осуждаю"?


О чём здесь говорил, знаю и использовал неоднократно! "Прекрасно" C++ не знаю и никогда не узнаю. Во-первых, это невозможно, во-вторых, у меня другие интересы в программировании.

Добавлено через 9 минут и 19 секунд
Цитата(mes @  2.8.2010,  15:55 Найти цитируемый пост)
почему бы не привести пример хорошей библиотеки ? хотя бы той самой Qt..


Хотя бы просто потому, что "хорошая библиотека Qt"- это очень спорный вопрос. Кому-то нравится, кому-то совсем наоборот. Можно привести и wx, но и здесь всё очень спорно. А по поводу .NET я ни слова не сказал, что это "хорошая" технология!

Это сообщение отредактировал(а) HellStranger - 2.8.2010, 17:27
PM MAIL   Вверх
Abyx
Дата 2.8.2010, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



HellStranger, давайте соревнование замутим? реализуем какой-нить простенький алгоритмик типа вычисления множества мандельброта, вы на Сях или чем хотите, и я на С++ или чем захочу?)
потом сравним производительность и LOC (объем кода)
PM MAIL   Вверх
HellStranger
Дата 2.8.2010, 18:26 (ссылка)   | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Abyx @  2.8.2010,  18:12 Найти цитируемый пост)
HellStranger, давайте соревнование замутим? реализуем какой-нить простенький алгоритмик типа вычисления множества мандельброта, вы на Сях или чем хотите, и я на С++ или чем захочу?)потом сравним производительность и LOC (объем кода)


Хоть я и обещал не отвечать на ваши посты, но так уж и быть...

Только в свободное от проектов время, а это будет не раньше сентября. Так как за соревнования заказчик, к сожалению, не платит. А работа дороже...
Так как неоднократно поднимался вопрос о стандартной библиотеке C и stl. Предлагаю на этом и сконцентрировавть внимание. Всевозможные сравнения строк, поиски подстрок и т.д. и т.п. Сортировки наборов различных структур данных, ну и что ещё в голову взбредёт. 
Реализовывать рекурсивные алгоритмы, да, если ещё с отрисовкой- это больше смахивает на "у меня длиннее", а не на сравнение языков.
Продолжая тему, могу вам предложить реализовать простенький видеоредактор с базовым функционалом: я буду использовать сишный FFMPEG, а вы- что найдёте из cpp. 

Так что: базовые алгоритмы CRT и аналоги из STL. На паре-тройке компиляторов. Смогу начать уже сказал когда. До этого момента я даже сортировку пузырьком писать не буду...

Это сообщение отредактировал(а) HellStranger - 2.8.2010, 18:38
PM MAIL   Вверх
mes
Дата 2.8.2010, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(HellStranger @  2.8.2010,  16:21 Найти цитируемый пост)
. А по поводу .NET я ни слова не сказал

Цитата(HellStranger @  2.8.2010,  14:39 Найти цитируемый пост)
а просто привожу пример хрени

слово "хорошая" было поставлено в противовес выделенному smile
а Qt привел в пример не потому то, она такая хорошая, а потому, что в отличие от .Net свободная
в том плане, что 
1. хотя и требует тоже специфических особенностей, но позволяет пользовать обычный (не специфический) компилятор
2. доступна  значительно более, чем на одной платформе
3. необъективно: приятна и логична в освоении.. 

Это сообщение отредактировал(а) mes - 2.8.2010, 20:35


--------------------
PM MAIL WWW   Вверх
MAKCim
Дата 2.8.2010, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



по поводу С vs. C++

на самом деле С вполнее может быть не быстрее С++, все зависит от того, какие средства С++ используются и как они реализованы для конкретной процессорной архитектуры

если использовать С++ просто как "С с классами", то там нет практически ничего, что может затормозить процесс выполнения

другой вопрос, что С++ объективно нагружен, сложен и костылеобразен, имеет абстрактный стандарт, который в реальной жизни не выполняет свою функцию...поэтому многие выбирают С: простой и понятный

я уже много раз повторял, что парадигма программирования и конкретный язык - это разные вещи
значительно упрощать себе жизнь на С помогает и ООП как _подход_ и _огромное_ множество (не сравнимое с С++) библиотек (кстати, из-за специфических возможностей С++ типа перегрузки)

да и вообще, здравый смысл и логика позволяют любой инструмент использовать грамотно и с наименьшими трудозатратами
HellStranger во многом прав, в частности в том, что голова и профессионализм в определенной области все-таки важнее конкретного инструмента


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
djamshud
Дата 2.8.2010, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

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



В топку видеоредакторы, это весьма скучно и рутинно, к тому же решения будут базироваться на сторонних библиотеках - в итоге просто сравниваются библитотечные пиписьки. Предлагаю наколбасить по парсеру. Используем стандартные библиотеки (C99 - libc, C++03 - libc и libstdc++), всяким генераторам - нет. О входном языке можно договориться, о модулях (собсно парсер, оптимизатор, генератор кода/интерпретатор) - тоже; при подведении итогов сравниваются объем кода (меньше - лучше), его простота (проще - лучше), простота внесения новых языковых конструкций и прочих фич (к модулям, если будет что-то кроме парсера) (проще - заeбатее), производительность (скорость, память), что-нибудь еще? Заведомо субъективные оценки выносим на голосование.

Это сообщение отредактировал(а) djamshud - 2.8.2010, 22:11


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
MAKCim
Дата 2.8.2010, 22:18 (ссылка) |    (голосов:8) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



djamshud
идея "соревнований" обречена на нереализацию ;)
проверено практикой


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
HellStranger
Дата 2.8.2010, 22:40 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(MAKCim @  2.8.2010,  21:14 Найти цитируемый пост)
если использовать С++ просто как "С с классами", то там нет практически ничего, что может затормозить процесс выполнения


Естественно! Почему я приводил в пример PWLib, OPAL и старенький уже OpenH323. С++ используется просто как язык, поддерживающий ООП... ну и операторы переопределяются многие. Разработана вполне понятная, логичная архитектура классов, вся реализация которой- чистый C. 

Цитата(MAKCim @  2.8.2010,  21:14 Найти цитируемый пост)
на самом деле С вполнее может быть не быстрее С++, все зависит от того, какие средства С++ используются и как они реализованы для конкретной процессорной архитектуры


Да вопрос даже скорее не в том, какой язык быстрее, в конце-концов это действительно зависит от многих факторов. Просто реально хочется проверть настолько ли хорошо stl, как его малюют. По крайней мере в работе со строками реально от отдыхает по сравнению с библиотекой C.

Цитата(MAKCim @  2.8.2010,  22:18 Найти цитируемый пост)
идея "соревнований" обречена на нереализацию ;)
проверено практикой 


Реализовывать круптые поделухи, я думаю, ни у кого особого желания нет, по крайней мере у меня и времени нет. А что-нибудь простенькое для сравнения CRT и stl- я только за. Пусть и другие заинтересованные лица подпрягаются. Обсудим, что будем сравнивать и как.

Добавлено @ 22:44
Цитата(djamshud @  2.8.2010,  22:10 Найти цитируемый пост)
В топку видеоредакторы, это весьма скучно и рутинно, к тому же решения будут базироваться на сторонних библиотеках - в итоге просто сравниваются библитотечные пиписьки.


Прошу обратить внимание, что библиотечные пиписьки я указывал сишные и пипишные. Как нельзя лучше отвечает предмету нашего соревнования. ) Это во-первых. Во-вторых, когда сварганишь редактор и пережмёшь им пару сотен фильмов, поизголяешься над звуковыми пакетами в .mov и профилях H264 и AAC, тогда и скажешь, что скучно и рутинно. По-моему, очень интересная область программирования. В-третьих, неужели у программистов есть время на то, чтобы реально меряться письками?.. Наряду с рабочими проектами можно найти море сторонних проектов, чтобы на маслице и икорочку к хлебу заработать... когда здесь меряться?..

Это сообщение отредактировал(а) HellStranger - 2.8.2010, 22:57
PM MAIL   Вверх
boostcoder
Дата 2.8.2010, 22:46 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(HellStranger @  2.8.2010,  12:37 Найти цитируемый пост)
Live555 меня поверг в уныние через 10 минут просмотра исходного кода...

учится, учится, еще раз учится (с) дядя ленин.

Цитата(HellStranger @  2.8.2010,  12:37 Найти цитируемый пост)
Как тогда тысячи программеров с FFMPEG разбираются?

через попу.
т.к. написано огромное кол-во оберток на с++, потому как с интерфейсами на Си работать можно как написано выше..

Добавлено через 1 минуту и 36 секунд
Цитата(HellStranger @  2.8.2010,  22:40 Найти цитируемый пост)
вся реализация которой- чистый C. 

естественно. когда ядра начнут писать на с++, тогда Си стал бы оберткой.

Добавлено через 4 минуты и 18 секунд
Цитата(HellStranger @  2.8.2010,  22:40 Найти цитируемый пост)
По крайней мере в работе со строками реально от отдыхает по сравнению с библиотекой C.

наследуемся от std::string, добавляем свойство - _хеш_сумму_, и вуаля! сравнение за один машинный такт! это же очевидно smile

Добавлено через 6 минут и 25 секунд
Цитата(HellStranger @  2.8.2010,  22:40 Найти цитируемый пост)
у меня и времени нет

Цитата(HellStranger @  2.8.2010,  18:26 Найти цитируемый пост)
Только в свободное от проектов время

вы столько времени тратите на флуд, что можно было уже довольно крупный тест наваять. по крайней мере на С++, за, к примеру, час smile 
PM WWW   Вверх
HellStranger
Дата 2.8.2010, 22:57 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @  2.8.2010,  22:46 Найти цитируемый пост)
через попу.
т.к. написано огромное кол-во оберток на с++, потому как с интерфейсами на Си работать можно как написано выше..


Нет, через вполне понятные исходники и комменты к ним, а вот cpp-обёртки- это как раз и есть попа для тех, кому лень учиться, учиться и учиться языку C. smile И будет тебе известно, работать с интерфейсами в C не многим сложнее, чем в cpp. C поддерживает COM, а COM-это интерфейсы. 
PM MAIL   Вверх
boostcoder
Дата 2.8.2010, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(HellStranger @  2.8.2010,  22:57 Найти цитируемый пост)
C поддерживает COM

это чё?
Цитата(HellStranger @  2.8.2010,  22:57 Найти цитируемый пост)
cpp-обёртки- это как раз и есть попа для тех, кому лень учиться

т.е. вы хотите сказать, что выучить Си сложнее? smile лжец!
PM WWW   Вверх
HellStranger
Дата 2.8.2010, 23:02 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @  2.8.2010,  22:46 Найти цитируемый пост)
вы столько времени тратите на флуд, что можно было уже довольно крупный тест наваять. по крайней мере на С++, за, к примеру, час smile  


Ага, в 12 ночи сел ваять. ;)

Цитата(boostcoder @  2.8.2010,  22:46 Найти цитируемый пост)
сравнение за один машинный такт!


И это я флудер... smile У меня по дискретке хорошо профессор говорил: "Нечем заняться, не делай этого здесь." От тебя уже реально один бред пошёл...
PM MAIL   Вверх
bsa
Дата 3.8.2010, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Цитата(HellStranger @  2.8.2010,  18:21 Найти цитируемый пост)
 Что касается сравнения строк, тоя  уже писал, что strcmp убивает string::compare в десятки раз...

Если быть точным - в пять:
Код
time ./aaac 

real    0m1.104s
user    0m1.100s
sys    0m0.000s
Код
time ./aaacpp

real    0m5.014s
user    0m4.990s
sys    0m0.000s
Правда, я имел в виду сравнение на равенство, операторами == и !=. Только в их случае имеет смысл сравнивать длину.
PM   Вверх
borisbn
Дата 3.8.2010, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



Если ваша программа (данные+функции) написана на Си и вам понадобилось внедрить ваш код в многопоточное приложение, то у вас начнутся проблемы (не нерешаемые, но всё же ...)
Если ваша программа написана на Си++ и вам надо перевести её на Си (для использования в каком-нибудь контроллере, например), то у вас тоже будут проблемы.
Вывод: edem das zaine (пардон за мой немецкий)
И ещё: если нужно написать программу с одной кнопкой, выводящей по нажатии на неё Хело Ворлд, то без использования визардов на Си уйдёт пару часов, на MFC - минут 20-30, на VCL или Qt - 2-3 минуты. Выводы делай сам


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Abyx
Дата 3.8.2010, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(HellStranger @  2.8.2010,  23:57 Найти цитируемый пост)
 И будет тебе известно, работать с интерфейсами в C не многим сложнее, чем в cpp. C поддерживает COM, а COM-это интерфейсы.  

множественное наследование и dynamic_cast на Си покажите
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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