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

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

06.11.2025, 13:50. Показов 14473. Ответов 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,620
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,620
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,620
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,620
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,620
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,620
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,620
17.11.2025, 00:25
Цитата Сообщение от XLAT Посмотреть сообщение
а ещё и жадный
0
17.11.2025, 01:18

Не по теме:

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

0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,159
Записей в блоге: 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,620
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,620
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
Ответ Создать тему
Новые блоги и статьи
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru