- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
bool Object::DeleteDouble(void* data)
{
Element* rc = Head;
BANKCLIENT* asd = (BANKCLIENT*)rc->Data;
int dbl;
Element* rc1 = Head;
BANKCLIENT* asd1 = (BANKCLIENT*)rc1->Data;
while ((rc != NULL) && (rc->Data != data))
{
asd = (BANKCLIENT*)rc->Data;
dbl = asd->NumScore;
while ((rc1 != NULL) && (rc1->Data != data))
{
asd1 = (BANKCLIENT*)rc1->Data;
if (dbl == asd1->NumScore)
{
std::cout << "Дублирующийся элемент удалён" << std::endl;
Delete(rc1);
goto flag;
}
}
}
flag:
system("pause");
return rc;
}
Некая svetlana.kotik раскрывает секреты односвязных списков.
guest 20.05.2016 01:22 # +3
>> system("pause");
:))))))
Dummy00001 20.05.2016 13:37 # +1
очевидно. матёрые профессионалы пишут `getchar();`.
Steve_Brown 20.05.2016 13:55 # +1
Steve_Brown 20.05.2016 13:56 # +4
3_dar 21.05.2016 23:41 # +1
gost 20.05.2016 15:11 # 0
bormand 20.05.2016 07:33 # +5
Antervis 21.05.2016 09:32 # +4
Может тебе free(nullptr) на могиле выгравировать?
gost 21.05.2016 18:54 # +1
Я вот что-то не врубаюсь, нахуя зачем это оставили в крестах?
Или, более глобально, нафига делать кресты обратно совместимыми с сишечкой?
Как-бы если нужен пирфоманс и байтоёбство - идём насишечку, благо её стандарт тоже развивается (C11), а если нужен высокий уровень, ООП, все дела - нахуя ебать байты malloc'ами?
А уж компилировать проекты на С конпелятором С++ - это явное извращение.
bormand 21.05.2016 19:05 # +2
Потому что изначально кресты паразитировали на сишке. А потом уже столько гибридного c/c++ софта понаписали, что совместимость пришлось оставить навсегда.
Это ж тебе не питон, чтобы всего за 10 лет почти перейти на новую, расово чистую версию.
3_14dar 21.05.2016 21:35 # 0
guesto 22.05.2016 02:37 # +3
https://docs.python.org/3/library/typing.html
блин, ты и пистона своего не знаш
3_14dar 22.05.2016 21:52 # 0
inkanus-gray 22.05.2016 21:55 # +1
3_14dar 23.05.2016 00:29 # 0
guesto 22.05.2016 13:12 # +1
kurwa 21.05.2016 23:19 # +3
> Как-бы если нужен пирфоманс и байтоёбство - идём насишечку
У меня всегда бомбит от этого тезиса. Насишечку идут, когда нужны сегфолты и буфероверфлоу. А перфоманс и байтоебство можно и в плюсах, не отказывая себе в прелестях RAII, ооп и прочих абстракций.
guesto 22.05.2016 02:39 # 0
А другие осилили. Например написавшие ту ОС, под управлением которой ты сейчас пишешь эту чушь
kurwa 22.05.2016 02:44 # −1
guesto 22.05.2016 03:09 # 0
kurwa 22.05.2016 13:33 # +1
Эко у тебя бомбануло от посягательства на свитую сишечку, что ты аж диагнозы мне начал ставить.
guesto 22.05.2016 13:50 # −3
kurwa 22.05.2016 13:55 # +4
CHayT 22.05.2016 14:02 # +8
3.14159265 23.05.2016 20:04 # +1
https://www.youtube.com/watch?v=ImXeMoKBAHs
defecate-plusplus 24.05.2016 00:32 # +1
прямо как в той истории про молдаван, бордель и 10 баксов
guesto 23.05.2016 21:12 # +1
а я про программирование
kurwa 24.05.2016 00:47 # 0
Абстрактная функция close может закрыть все что угодно, даже argc и errno.
1024-- 22.05.2016 11:33 # −1
Вот, кстати, когда пишут про жс, почему-то ругают язык. А как про сишку - так программистов.
Почему так, если в сущности здесь только два языка, каждый из которых позволяет легко написать чушь, из-за которой программу можно сразу выбрасывать? Потому, что сишка десятилетия была в ходу как практически безальтернативный язык для запиливания царского пирфоманса, а жс молодой.
У тебя бомбит видимо от того, что ты не осилил писать на жавоскрипте без андефайндов и падающих при ошибке http-запросов.
А другие осилили. Например написавшие тот сайт, под управлением которого ты сейчас пишешь эту чушь
guesto 22.05.2016 13:51 # +2
bormand 22.05.2016 17:27 # +4
Да нет там ничего сложного. Там просто нужны самоконтроль и сила воли, прокачанные до 99 уровня. Или ревьювер с кнутом. Иначе рано или поздно срываешься в хаки и преждевременную оптимизацию ;(
З.Ы. Поэтому я больше люблю кресты с их няшными RAII и шаблонами. Рутины поменьше.
1024-- 22.05.2016 21:23 # +1
Не существует способа написать хороший код на сях. А на жс существует, хотя и сложный. На жс можно эмулировать модули, а на сишке нет
Antervis 22.05.2016 21:36 # +3
п.с. я даже сам не знаю, серьезно я или стоило выделить зеленым.
kipar 23.05.2016 09:32 # +6
inkanus-gray 23.05.2016 12:47 # 0
dxd 23.05.2016 12:51 # +3
А вы говорите, драйвера на жс...
P.S. Да, ещё в "аналоге ардуино" по дефолту наличествует питон(второй), перл и gcc. Да, прямо на борту у embedded-девайса.
TarasB 23.05.2016 12:31 # +4
roman-kashitsyn 23.05.2016 14:05 # +8
@guesto, научите ещё авторов OpenSSL писать без бафероверфлоу, реально достали.
И да, сишный qsort работает примерно в 2 раза медленнее std::sort. Абсракции виноваты, наверное.
Soul_re@ver 23.05.2016 15:33 # +4
Antervis 22.05.2016 13:49 # 0
gost 22.05.2016 17:18 # 0
Вот-вот. Другие пишут на всяких шарпах и жавах - и ничего, обходятся как-то без необходимости срать напрямую в память. А как кресты - так без ебли с сырыми указателями уже никак.
Antervis 22.05.2016 18:20 # +1
gost 22.05.2016 18:34 # 0
Antervis 22.05.2016 18:52 # 0
> обычный десктопный проект
> может не хватит перфоманса стандартных крестовых средств
Речь же шла о перфомансе стандартных джава/шарп средств? В моей предметной области достаточно много узких мест
gost 23.05.2016 07:34 # 0
Изначально, речь шла о " В 98% участков кода перфоманса на любую чушь хватит. Зато кое где надо прям побайтоёбить", т.е. о крестах. Я и привёл пример - куча программ, даже написанных на джаве/шарпе (объективно более медленных, чем кресты, за счёт оверхеда VM), вполне работают безо всякого байтоёбства и сырых указателей.
> В моей предметной области достаточно много узких мест
Прямо НАСТОЛЬКО узких, что не хватает крестовых STL/Boost, нужно ебать память напрямую?
Antervis 23.05.2016 08:11 # 0
... битовыми полями. Да, приходится
gost 23.05.2016 08:31 # 0
Ну и, к тому же, очень часто битовые поля - признак плохой архитектуры и попытке сэкономить пару байт на спичках.
guesto 23.05.2016 09:26 # 0
gost 23.05.2016 09:52 # +3
Часто тебе для десктопного проекта нужны данные ядра и свой сетевой протокол?
Ну и да, для передачи данных по сети обычно используют JSON/Protobuf (если нет нужды в крайне высокой производительности - вроде игр и прочего), а ядро и драйверы - слишком специфичная область, с которой я и не знаком толком.
Antervis 23.05.2016 10:25 # 0
В вашем представлении "обычный десктопный проект" это не игра, не инженерный софт, не математический софт, не производственный софт. Что же это? Какая-то абстрактная бесполезная хуита утилита
dxd 23.05.2016 11:03 # +4
wvxvw 23.05.2016 13:00 # +4
Типичный вывод сишкопрограммы. (в данном случае: Connectathon - популярный инструмент для тестирования NFS).
gost 23.05.2016 15:00 # +5
Зачем мне нужен unsigned? У меня нет времени, чтобы ебаться с ним!
bormand 23.05.2016 21:18 # +1
gost 23.05.2016 11:24 # 0
По моему представлению, в производственном софте главное - всё же надёжность. А байтоёбство и прямая работа с памятью надёжности не прибавляет.
> математический софт
Вот здесь производительность как-раз может быть боттлнеком. Однако, вы часто пишете математический софт, когда есть Wolfram/MathCAD/etc?
> инженерный софт
Какой именно? САПРы?
> игра
Здесь байтоёбинг может быть уместен, хотя и не всегда нужен.
> NMEA кодирует сообщения AIS (VDM) побитово
Эээ... "NMEA 0183 is a combined electrical and data specification for communication between marine electronics such as echo sounder, sonars, anemometer, gyrocompass, autopilot, GPS receivers and many other types of instruments." - мы о десктопе говорим, или уже переместились в мир микроэлектроники? Если переместились - я, пожалуй, покину дискуссию, ибо знанями о морском оборудовании и GPS приёмниках не обладаю.
Antervis 23.05.2016 14:20 # 0
guest 20.05.2016 08:46 # 0
dxd 20.05.2016 10:23 # +1
Fluttie 22.05.2016 10:51 # 0
bormand 22.05.2016 11:04 # 0
Antervis 22.05.2016 15:41 # 0
bormand 22.05.2016 17:17 # 0
> scoped_exit
> unique_ptr
Ну а вот это как раз не в тему. Там не надо освобождать ресурсы. Там надо просто прервать 2 цикла и продолжить код под ними, причём не по ошибке (поэтому исключение кидать не вариант).
Штука редкая, в типичном хуяк-хуяк-в-продакшен (где большинство циклов красиво заменяется на всякие find'ы) не встречается.
Antervis 22.05.2016 18:28 # 0
bormand 22.05.2016 18:30 # +3
Antervis 22.05.2016 18:40 # 0
guesto 24.05.2016 11:25 # −3
CHayT 23.05.2016 13:17 # +2
-- а-а-а-а, кто-то где-то использует goto
-- срочно замените его на throw/catch!
или на лямбду!
guesto 24.05.2016 01:34 # −1
Dummy00001 20.05.2016 09:16 # +3
"Now, that's a name I've not heard in a long time."
guest 20.05.2016 12:00 # −4
3_14dar 21.05.2016 21:37 # −2