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

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

06.11.2025, 13:50. Показов 13407. Ответов 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
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,082
Записей в блоге: 3
16.11.2025, 18:21
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Royal_X Посмотреть сообщение
программисты не могут сами объединиться
вот в этом месте мне больше всего интересно!

сидеть тут на форуме многими часами и из года в год писать одно и тоже про "как программно сложить А и B",
а разбить большую задачу на мелкие части и раздать всем это уже такой зашквар,
что уже достойно нобелевки)

ах, да, я забыл! это же оффтоп! :лол

"и ваще форум тут не для этого!"
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6221 / 2919 / 1046
Регистрация: 01.06.2021
Сообщений: 10,813
16.11.2025, 18:25
Цитата Сообщение от Folian Посмотреть сообщение
Ну ты возьми и тоже всех так называй, в чём проблема-то?
для меня слово "сишник" или "сишкодер" абсолютно безобидные слова. Но вот XLAT его использует с иронией, в качестве насмешки. И это при том, что он сам себя тоже считает сишником, но мол разница в том, что он пытается вылечиться от этой "ужасной" болезни, а вот дескать остальные насколько заражены, что не смогут вылечиться. И ему от этого смешно))) А сам он, как писал, так и пишет в сишном стиле...

Цитата Сообщение от Folian Посмотреть сообщение
ИИ зачастую пишут жуткую шляпу
это если я бы попросил ИИ написать, что "XLAT сишник". А мой вопрос был объективным. К тому же, тут не тот случай, чтобы гадать на кофейной гуще и голову ломать, ИИ прав или нет. Я же кинул ссылку на сорец, любой может убедиться, что там сишный стиль.
То, что он старается использовать ООП - не спорю. К тому же, похвально, что он изучает различные паттерны и пытается их реализовать в пет-проектах. Но сишный стиль все еще чувствуется.
0
Just Do It!
 Аватар для XLAT
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,082
Записей в блоге: 3
16.11.2025, 18:27
Цитата Сообщение от Royal_X Посмотреть сообщение
Но вот XLAT его использует с иронией, в качестве насмешки.
нет.

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

зачем? чтобы сделать вас лучше!

но вы не можете ...

ну, хоть смешно - тоже польза.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6221 / 2919 / 1046
Регистрация: 01.06.2021
Сообщений: 10,813
16.11.2025, 18:39
XLAT, я ж тебе всегда говорил, что если хочешь писать совместно, перед тем как приступить к написанию нужно распределить роли. А до этого - приблизительно представить, как будет выглядеть проект.
А ты без всего этого начинаешь уже писать и просишь других как-то пристроиться сбоку. Это напоминает вязку собак, когда третья собака тоже хочет участвовать, но не знает как, ведь процесс уже начат) Пример на собаках, поскольку тут на фотке выше увидел прекрасную овчарку.

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

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

В любом случае, мне все равно. Твой пост даже не мне был адресован.
0
Just Do It!
 Аватар для XLAT
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,082
Записей в блоге: 3
16.11.2025, 18:44
Цитата Сообщение от Royal_X Посмотреть сообщение
transform
ты чуваку не рассказал про самое вкусное - про "конкарренси из коропки".

Цитата Сообщение от Igor3D Посмотреть сообщение
А много ли счастья от того std::string_view?
правильно думать не про современность, а про эффективность,
ибо эффективность это философия С++ + эффективность это универсальная(общемировая) ценность.
std::string_view обеспечивает вам эффективную работу с вашими строками...

Code
1
2
3
4
2000 год - В школе изучают что такое бит.
9999 год - В школе изучают что тако бит.
 
Может ли бит в 9999 году быть несовременным?
Цитата Сообщение от Royal_X Посмотреть сообщение
Вот, DrOffset
если спрашивать у доктора какие книжки почитать, то, да, он на высоте.

если что-то серьезное и по конкретному делу, то он может просто грубо отгавкаться))
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6221 / 2919 / 1046
Регистрация: 01.06.2021
Сообщений: 10,813
16.11.2025, 18:47
Цитата Сообщение от XLAT Посмотреть сообщение
ты чуваку не рассказал про самое вкусное - про "конкарренси из коропки".
в том случае transform выиграл у for как раз без явного выставления execution policy
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
16.11.2025, 18:51
Цитата Сообщение от Igor3D Посмотреть сообщение
В связи с этим такой вопросик: а почему это не пресекается? Ведь такая возможность есть, псевдокод
Вполне успешно пресекается статическими анализаторами.
Ваш же код неприятно конфликтует с такой удобной возможностью, как использование временного объекта в качестве аргумента функции с последующим преобразованием к string_view. Например:
C++
1
2
3
4
5
void foo(std::string_view x);
 
//.........
 
foo(qstr.toStdString());
Данный код к описанным выше проблемам с висячим указателем не приводит в принципе, и запрещать ли его ради школьной ошибки - вопрос дискуссионный. Если бы спросили мое мнение, то я бы ответил словами Клинта Иствуда об отсутствии ограждений на водопаде в Исландии.
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
16.11.2025, 18:55
Цитата Сообщение от Royal_X Посмотреть сообщение
Но вот XLAT его использует с иронией, в качестве насмешки. И это при том, что он сам себя тоже считает сишником, но мол разница в том, что он пытается вылечиться от этой "ужасной" болезни, а вот дескать остальные насколько заражены, что не смогут вылечиться. И ему от этого смешно)))
Смешно забавно тут лишь то что тебя это задевает. Нормальное поведение в мужском коллективе. Смотри:

XLAT, ты ссаный ссишник!

Не страшно чего-то не знать/не уметь. Страшно потерять интерес/любопытство.


Цитата Сообщение от Royal_X Посмотреть сообщение
это если я бы
ИИ зачастую пишут жуткую шляпу.

Цитата Сообщение от Royal_X Посмотреть сообщение
любой может убедиться, что там сишный стиль.
Шестилетней давности?

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


Цитата Сообщение от Royal_X Посмотреть сообщение
Вот, DrOffset может кому-то там давать советы, потому что он пишет коды на С++ производственного уровня.
DrOffset, в первую очередь, порядочный человек и программист. И советы он даёт, потому что он уверен в ответе, исходя из гигантского опыта; и не потому что может или ему разрешили - а потому что хочет (моё ИМХО, возможно его просто обязали - зайдёт - расскажет (если захочет)).

//Кстати, не помню, чтобы он ворчал про стили (хотя и не видел чтобы он ворчал вообще)

Харош надувать муху.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6221 / 2919 / 1046
Регистрация: 01.06.2021
Сообщений: 10,813
16.11.2025, 18:59
Цитата Сообщение от Folian Посмотреть сообщение
забавно тут лишь то что тебя это задевает
да ничё не задевает я его давно знаю и больше тебе скажу - его пост был просто удочкой) но мне самому захотелось поучаствовать в философском оффтопе
0
16.11.2025, 18:59

Не по теме:

Цитата Сообщение от XLAT Посмотреть сообщение
если что-то серьезное и по конкретному делу, то он может просто грубо отгавкаться))
Royal_X, XLAT, Большая просьба к вам обоим не втягивать меня в свои странные разговоры.

Если же есть какие-то конкретные претензии к тем или иным моим ответам на форуме, то прошу их (с пруфами естественно) отправлять мне в личку, где я вам конкретно объясню почему я ответил так или иначе.

0
Just Do It!
 Аватар для XLAT
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,082
Записей в блоге: 3
16.11.2025, 19:04
Цитата Сообщение от Folian Посмотреть сообщение
XLAT, ты ссаный ссишник!


Не по теме:

Royal_X,
улавливаешь? ты сишкошкодер, а я бог!

1
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
16.11.2025, 19:07
XLAT,
Где смайлик "взаимоисключающие параграфы"?)

Добавлено через 1 минуту
Цитата Сообщение от Royal_X Посмотреть сообщение
но мне самому захотелось поучаствовать в философском оффтопе
Главное, чтоб тебе было интересно!
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
16.11.2025, 21:35
Цитата Сообщение от XLAT Посмотреть сообщение
ну наконец-то сишкошкодеры через 8 лет узнали про std::string_view,
и теперь у них появятся современные кресты.
Заменить числа в тексте на шестнадцатеричные

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

Но ты свои проблемы проецируй дальше на других, говорят это помогает усугубить проблему.
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
16.11.2025, 21:41
Цитата Сообщение от SmallEvil Посмотреть сообщение
string_view настолько банальная вещь, что даже не стоит внимания.
Любая подобная нужная фича пишется за пару минут.
Напиши string_view за пару минут.
0
Just Do It!
 Аватар для XLAT
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,082
Записей в блоге: 3
16.11.2025, 22:30
Цитата Сообщение от SmallEvil Посмотреть сообщение
Заменить числа в тексте на шестнадцатеричные
трушный крестокод:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
///----------------------------------------------------------------------------|
/// C++17
/// Текст кодировке WINDOWS-1251.
///----------------------------------------------------------------------------:
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
#include <vector>
 
///----------------------------------------------------------------------------|
/// HexReplacer.
///---------------------------------------------------------------- HexReplacer:
struct HexReplacer
{   using byte = unsigned char;
 
    static std::string replace(std::string_view text)
    {   std::string result;
        std::string number;
 
        for (char c : text)
        {   if (std::isdigit(static_cast<byte>(c))) number.push_back(c);
            else
            {   if (!number.empty())
                {   result += toHex(std::stoul(number));
                    number.clear();
                }
                result += c;
            }
        }
 
        if (!number.empty()) result += toHex(std::stoul(number));
 
        return result;
    }
 
private:
    static std::string toHex(unsigned long number)
    {   using namespace std;
        return(stringstream() << "0x" << uppercase << hex << number).str();
    }
 
    friend int  main();
    static void test()
    {   std::vector<std::string_view> test_cases
        {   "В тексте есть числа 123, 4567 и 89.",
            "Адрес: 192.168.1.1 с портом 8080"   ,
            "Большие числа: 65535, 4294967295"   ,
            "Текст без чисел: просто текст"      ,
            "Смешанный текст: abc123def456ghi"   ,
            "Граничные случаи: 1 22 333 4444"
        };
 
        for (const auto& test : test_cases)
        {   std::cout << "Исходный: " << test << '\n';
            std::cout << "Замена  : " << HexReplacer::replace(test) << '\n';
            std::cout << "---" << std::endl;
        }
    }
};
 
///----------------------------------------------------------------------------|
/// Старт.
///----------------------------------------------------------------------------:
int main()
{   std::setlocale(0,"");
    HexReplacer::test ();
}
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6221 / 2919 / 1046
Регистрация: 01.06.2021
Сообщений: 10,813
16.11.2025, 22:54
Цитата Сообщение от XLAT Посмотреть сообщение
C++
1
2
3
4
static std::string toHex(unsigned long number)
    {   using namespace std;
        return(stringstream() << "0x" << uppercase << hex << number).str();
    }
сегодня ты умничал, что "сишкошкодеры через 8 лет узнали про std::string_view"

а сколько лет нужно тебе, чтобы ты узнал про format? Это же всего лишь С++20.

C++
1
2
3
4
std::string toHex(unsigned long number) 
{
    return std::format("0x{:X}", number);
}
0
Just Do It!
 Аватар для XLAT
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,082
Записей в блоге: 3
16.11.2025, 22:57
Цитата Сообщение от Royal_X Посмотреть сообщение
а сколько лет нужно тебе, чтобы ты узнал про format? Это же всего лишь С++20.
читай заголовок.
или умные все слепые?

Цитата Сообщение от Royal_X Посмотреть сообщение
ты умничал
а ты умничал, что у тебя std::format работает в 50 раз медленнее стринг арифметики.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6221 / 2919 / 1046
Регистрация: 01.06.2021
Сообщений: 10,813
16.11.2025, 23:07
Цитата Сообщение от XLAT Посмотреть сообщение
читай заголовок
заголовок темы "Написать современно"

Цитата Сообщение от XLAT Посмотреть сообщение
а ты умничал, что у тебя std::format работает в 50 раз медленнее строковой арифметики
я наоборот говорил, что он быстрее. Причем, выложил даже видеодоказательство : Совместное создание игры (2)

а ты начал уже обманывать, а это плохо. Надеюсь, ты не намеренно обманываешь, а перепутал меня с Хулиганом. Это он говорил, что format медленный.
1
Just Do It!
 Аватар для XLAT
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,082
Записей в блоге: 3
16.11.2025, 23:09
Цитата Сообщение от Royal_X Посмотреть сообщение
заголовок темы "Написать современно"
современно это вот прямо щас я пишу ММО на Lua, потому что, внимание, ИНФРАСТРУКТУРА ВСЁ РЕШАЕТ!

позже, возможно, будет шарп на юньке...

вот это современно))
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6221 / 2919 / 1046
Регистрация: 01.06.2021
Сообщений: 10,813
16.11.2025, 23:13
Цитата Сообщение от XLAT Посмотреть сообщение
будет шарп на юньке...
C# очень норм язык, особенно, для игр

Цитата Сообщение от XLAT Посмотреть сообщение
я пишу ММО на Lua
а почему именно Lua? нашел игровой движок на нем?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2025, 23:13
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru