Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,157
Записей в блоге: 2

Написать современно

06.11.2025, 13:50. Показов 14437. Ответов 154
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

Есть такой фрагмент

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const char * singleC = strstr(src, "//");
const char * multiC = strstr(src, "/*");
const char * eol = strstr(src, "\n");
 
const char * min = nullptr;
if (singleC) min = singleC;
if (multiC && (!min || (multiC < min))) min = multiC;
if (eol && (!min || (eol < min))) min = eol;
 
if (!min) return;
 
if (min == singleC) {
 ...
}
 
if (min == multiC) {
 ...
}
 
if (min == eol) {
 ...
}
Бросается в глаза что код примитивный (тупой, убогий, говнокод и.т.п. - как хотите). Кроме того, его можно существенно ускорить.

Хорошо, как написать грамотно, современно? И заодно универсально, чтобы работал не только с char*

Спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2025, 13:50
Ответы с готовыми решениями:

Каковы современные решения написания программ?
Уже пол года как изучаю с++. За это время решил не мало задачек и перечитал литературы. Писал все...

Как создают современные компьютерные игры?
Интересно, как создают современные компьютерные игры?? То есть на каком языке программирования?? Я...

Современный интерфейс в C++ Builder
Что используют программисты для создания современного интерфейса в C++ Builder XE4? Ведь сейчас,...

154
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 23:29
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Royal_X Посмотреть сообщение
а почему именно Lua? нашел игровой движок на нем?
вот можешь зайти поиграть хоть с компа, хоть с телефона:
Стелссер
это мой геймдиз разошелся - внимание(!) - не нужно знать ничего - только вайб-кодить))

у меня параллельный прожект, но я скромный - хвастать не буду)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
16.11.2025, 23:37
XLAT, нужно аккаунт создать?

А про что "паралельный прожект"? На каком языке?
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 23:49
Цитата Сообщение от Royal_X Посмотреть сообщение
Это он говорил, что format медленный.
причем тут кто-то если можно прогнать на тесте: https://onlinegdb.com/5otQXrZS-5 (видно что формат в минусе)
+
отдельно тест на MinGW-GCC14.2-w64ucrt-12 подтверждает.

Добавлено через 8 минут

Цитата Сообщение от Royal_X Посмотреть сообщение
А про что "паралельный прожект"? На каком языке?
я тя ссыль дал, ты её не поглядел, а уже вторую просишь, Royal_X, лентяй, ты, однако.

Добавлено через 2 минуты
Royal_X,
поставь моему геймдизу ---> палец вверх - это обязательно.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
16.11.2025, 23:59
Цитата Сообщение от XLAT Посмотреть сообщение
лентяй, ты, однако
не люблю создавать одноразовые аккаунты, которые мне не нужны. По этой же причине, например, отказался тестировать CLion Какую IDE/редактор кода Вы предпочитаете и почему?

Добавлено через 1 минуту
XLAT, кто-то мне говорил на этом форуме, что Roblox для детей
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
16.11.2025, 23:59
Цитата Сообщение от Royal_X Посмотреть сообщение
не люблю создавать аккаунты
а чо тогда ко мне пристал?
ничем помочь тя не могу.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
17.11.2025, 00:01
Цитата Сообщение от Royal_X Посмотреть сообщение
кто-то мне говорил на этом форуме, что Roblox для детей
а вот, нашел. Вы бы стали играть в такую игру "кабинет физики" с реальными приборами? это мне 8Observer рассказывал
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 00:02
Цитата Сообщение от Royal_X Посмотреть сообщение
Roblox для детей
дети там лямы уе подымают.
я анкету заполнял: секас, трупы, фекалии, кровь рекой - "всё ок - "дети" такое у нас любят"
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
17.11.2025, 00:03
Цитата Сообщение от XLAT Посмотреть сообщение
поставь моему геймдизу ---> палец вверх - это обязательно
то, что перешел по ссылке - уже должно быть поводом для радости для твоего геймдиза, учитывая низкую статистику визитов
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 00:06
Цитата Сообщение от Royal_X Посмотреть сообщение
то, что перешел по ссылке - уже должно быть поводом для радости для твоего геймдиза, учитывая низкую статистику визитов
он там прототипирует, ёшкин кот)
затем на анрил понесёт))

Цитата Сообщение от Royal_X Посмотреть сообщение
то, что перешел по ссылке
там должно стать 5 пальцев, а пока ты халтуришь...
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
17.11.2025, 00:10
Цитата Сообщение от XLAT Посмотреть сообщение
там должно стать 5 пальцев, а пока ты халтуришь...
не ну я ничего не видел, за что ему ставить лайк? Тем более, из всего этого

Цитата Сообщение от XLAT Посмотреть сообщение
секас, трупы, фекалии, кровь рекой
только первое одобряю
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 00:17
Цитата Сообщение от Royal_X Посмотреть сообщение
только первое одобряю
в игре порядок такой: фекалии, кровь, трупы, секас.
потому что секас(есно с принцессой) это награда за испытания через первые 3. сечешь?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
17.11.2025, 00:22
Цитата Сообщение от XLAT Посмотреть сообщение
у меня параллельный прожект
полагаю, что он у тебя только в виде идеи. Как он будет материализован, готов тестировать (и я тебе об этом уже говорил, что готов тестировать твои приложения/игры на винде). Только аккаунты и прочие препятствия не создавай. Тестировщик, работающий на бесплатной основе, не должен проходить через все левелы ада. Поэтому постарайся ничего не усложнять.

Цитата Сообщение от XLAT Посмотреть сообщение
есно с принцессой
в ближайшие недели занят, но потом я создам аккаунт и посмотрю, что там
2
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 00:22
Цитата Сообщение от Royal_X Посмотреть сообщение
за что ему ставить лайк?
ты вообще обязан был 500 евро туда дать, а с тебя тока 1 лайк спросили,
офигеть, да ты не только лентяй, а ещё и жадный))
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
17.11.2025, 00:25
Цитата Сообщение от XLAT Посмотреть сообщение
а ещё и жадный
0
17.11.2025, 01:18

Не по теме:

Пойду выпишу себе электрический рояль.

0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,157
Записей в блоге: 2
17.11.2025, 13:17  [ТС]

Не по теме:

Цитата Сообщение от DrOffset Посмотреть сообщение
запрещать ли его ради школьной ошибки - вопрос дискуссионный.
Согласен, скорее нет, не запрещать. Но для своего подобного "ссылочного" класса я бы такую блокировку может и добавил



Цитата Сообщение от XLAT Посмотреть сообщение
трушный крестокод:
C++
1
static std::string replace(std::string_view text)
Ну и зачем тут std::string_view? Почему не (const std::string &)? Выгоды string_view можно было показать для переменной number, накапливать цифры не создавая еще строки. Правда эффект в данном случае копеечный, да и пришлось бы копать мутное std::from_chars. В общем, как-то с современностью явно не задалось.

"Зато" с универсальностью совсем мрачно. Не видно даже попыток, потуг. Хотя способы известны, даже без template. Но, как говорят в боевиках
Даже не думай об этом!
А ведь это актуально. Давно уже не устраивает только старенькое std::string, хотят юникод. И что делать? Позорно копи-пастить? Так для QString (вместо std::string) там много чего менять (пусть в лучшую сторону). А потом попросят изменения, напр экранировать текст в кавычках. Ах как приятно, увлекательно будет править 2 варианта!

И если уж трепаться, то о программировании (а не о котиках-собачках-играх). Напр так
А что Вы понимаете под "современностью"? Какой смысл Вы вкладываете в это понятие?
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 14:04
Цитата Сообщение от Igor3D Посмотреть сообщение
Ну и зачем тут std::string_view? Почему не (const std::string &)?
Когда вы передаете строковый литерал "123" в функцию, принимающую const std::string&, происходит:

C++
1
2
3
4
5
void foo(const std::string& str)
{   // используем str
}
 
foo("123"); // Неявное создание временного std::string!
компилятор создает временный объект std::string, который:

- выделяет память в куче
- копирует туда данные из литерала
- уничтожает объект после вызова функции
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
17.11.2025, 15:01
Igor3D, у XLAT там все правильно. string_view это верный выбор. Это как раз один из основных случаев, когда именно его и нужно использовать.
1
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 15:11
Цитата Сообщение от Royal_X Посмотреть сообщение
string_view это верный выбор.
такие вопросы возникают, потому что отсутствует достойная задача)

вот представим следующую ситуацию:
1. у вас есть буфер с символами на пару мег (и таких буферов может быть в кол-ве гиг).
2. вы пропустили его через фильтр и у вас на руках есть список строк.
3. теперь вам захотелось привести их к виду heх.
4. std::string_view может всё(!) это стандартно сделать без копирования или ваших череззаборногузадирищенских костылей.
5. надеюсь, что тут профит всем кристально ясен) -
НА ВСЕХ ЭТАПАХ ОБРАБОТКИ БУФЕРА СУЩЕСТВУЕТ ТОЛЬКО ОДИН ЕГО ЭКЗЕМПЛЯР(ОРИГИНАЛ) БЕЗ КОПИИ!

хотя, зная упоротость сишкошкодеров меня гложут сомнения в п5...

Цитата Сообщение от Igor3D Посмотреть сообщение
Выгоды string_view можно было показать для переменной number, накапливать цифры не создавая еще строки
вот тут четко!
+1 вам печенька.

тут базовый вопрос:
умеет ли std::stoul(number) работать с string_view ???

сразу тогда смотреть в C++26,
если нет, то закидать комитетчиков *помидорами.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
17.11.2025, 15:27
Цитата Сообщение от XLAT Посмотреть сообщение
зная упоротость сишкошкодеров меня гложут сомнения в п5...
мы с тобой можем писать на С++17 или хоть на С++26, но полагаю, что многие программисты, которые работают в компаниях пишут на очень старых версиях стандарта, типа С++11 (а может даже еще старее) или в лучшем случае С++14. И связано это с тем, что они тянут покрывшиеся плесенью античные велосипеды, на которых держатся их компании.
А вот std::string_view появился в С++17.
Т.е. хочу сказать, что несмотря на то, что пацаны вроде и опытные, пишут кодами коды в компаниях, у них может быть мало опыта работы с фичами из С++17 и выше. Соответственно, и на форумных кодах они и дальше предпочитают const string& и пр.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2025, 15:27

Нормальная, современная книга по C++ с ООП уклоном
Так вышло что изучаю параллельно два языка Java и C++ ну вот жизть так сложилась нужно писать и там...

А.Александреску - Современное проектирование на C++
Собственно вопрос не совсем по программированию :) Хочу купить бумажный вариант, но смущает, что...

Современный интерфейс в C++ Builder / C++ Builder
Что используют программисты для создания современного интерфейса в C++ Builder 6? Ведь сейчас,...

Каков современный подход для работы со строками
Здравствуйте, хотел узнать современный подход для работы со строками. В С++ так же используется...

Концепция ООП и их использование в современных языках программирования
Дали курсовую на эту тему. Подскажите, какую литературу, которую можно бы было использовать пр ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru