Russian Qt Forum
Ноябрь 26, 2024, 06:55
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
string и startsWith
Страниц:
1
...
7
8
[
9
]
10
11
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: string и startsWith (Прочитано 61257 раз)
thechicho
Гость
Re: string и startsWith
«
Ответ #120 :
Май 30, 2013, 08:42 »
//\s — это любой пустой символ, а не только пробел
какая разница. код выполнит свою задачу. если в строке будет "любой пустой символ", а его там не будет, то регулярка меняется так
Код:
str.replace(QRegExp(" .+$"), "");
учитывая, что вы тоже явно ищите пробел
Код:
int spacePos = s.indexOf(" ");
но если вам не нравятся регулярки или вы просто не умеете их готовить, то
Код:
s = s.left(s.indexOf(" "));
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: string и startsWith
«
Ответ #121 :
Май 30, 2013, 08:45 »
Цитата: _OLEGator_ от Май 29, 2013, 20:08
Очередное передергивание и вырывание слов из контекста. Это фраза относилась к фанатичной и бесполезной оптимизации.
Ни к какой фанатичной оптимизации я не призывл. Да, QString довольно жирный/затратный класс, и да, переливание из одного строчника в другой и обратно не есть грамотно. Последнее вообще применимо к любым строковым типам. Что не так, что не нравится?
Цитата: Old от Май 29, 2013, 20:28
Да в данном случае никто не думает ни про какую оптимизацию, это попытка "высосать из пальца" хоть какие то основания для целесообразности своего велика.
Звучит как "ах ты, гад, велосипедишь!"
Откуда такая злобв к велику? Ну не увидел этой вещички в бусте, ну сделал свою - почему это преступление? Почему я был обязан непременно найти и воспользоваться, почему Вы считаете это "делом чести", "показателем класса"? Это же чущь собачья
В своем велике по меньшей мере вреда никакого. Беда совсем в другом - если человек пользует инструмент не умея сделать свой велик. Напр полезно сначала сделать свой "массив переменной длины", а уж потом юзать std::vector. Тогда будет "в жилу". Но подавляющее большинство считает себя умнее - и сразу начинает с вектора. В результате очень часто выбор этого контейнера неудачен. Использование готового хорошо при наличии своего опыта, иначе результат обратный.
Записан
thechicho
Гость
Re: string и startsWith
«
Ответ #122 :
Май 30, 2013, 08:49 »
Spark
, ну
Igors
вам популярно намекнул, что надо начинать с частностей, а потом переходить к целому, выражаясь вашим языком.
//Если провести черту там где она проведена в споре, то я на стороне добра и зла
привет Швейцария
//есть такое качество как упертость (поперечность)
есть и упоротость
Записан
thechicho
Гость
Re: string и startsWith
«
Ответ #123 :
Май 30, 2013, 08:58 »
Цитата: Igors от Май 29, 2013, 19:03
А разве я говорил что QString - "плохой" класс, позорно медленный
Цитата: Igors от Май 30, 2013, 08:45
Да, QString довольно жирный/затратный класс
Цитата: Igors от Май 30, 2013, 08:45
В своем велике по меньшей мере вреда никакого. Беда совсем в другом - если человек пользует инструмент не умея сделать свой велик
Звучит как "ах ты, гад,
не
велосипедишь!" Откуда такая злобв к
готовым инструментам
?
//В результате очень часто выбор этого контейнера неудачен. Использование готового хорошо при наличии своего опыта, иначе результат обратный.
код отработает на 20 микросекунд медленнее?)
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: string и startsWith
«
Ответ #124 :
Май 30, 2013, 10:55 »
Цитата: thechicho от Май 30, 2013, 08:58
код отработает на 20 микросекунд медленнее?)
Какое пренебрежение к микросекундам. А если именно этих микросекунд и недостаточно?
Я к тому, что выбор реализации надо бы привязывать не к любви (или не любви) к велосипедам, а к требованиям ТЗ.
Записан
thechicho
Гость
Re: string и startsWith
«
Ответ #125 :
Май 30, 2013, 11:19 »
//этих микросекунд и недостаточно
для чего?
нет требований и тз. есть задача, которую надо решить.
в контексте задачи ТС видно, что не имеет значения отработает код 1 микросекунду или 20.
вообще не понятно, почему он решил работать с qt, учитывая что в коде std::string.
но раз он здесь, то исходя из контекста форума, было предложено решение с использованием qt, котороше пришлось не по душе
Igors
, о чем он популярно намекнул
Цитата: Igors от Май 26, 2013, 10:59
Ну Вы же сами понимаете - это халтура. Давайте перельем строку из одного представления в другое, где есть удобные утилиты, а потом обратно. Да, делов неск секунд, но ведь платим оптимальностью. Вот кто-то ускорит Ваш код раз так в 20 и скажет типа "там какой-то лошара писал, с пых-пых наверно". И, поверьте, будет неприятно.
хотя перед этим он написал совершенно справедливую вещь, на которой бы все и закончилось, если бы не последовало дальнейших его комментариев
Цитата: Igors от Май 26, 2013, 09:30
Вы можете использовать советы выше или написать свои утилиты - прекрасная возможность потренироваться в языке. Если опыта пока мало, то последний вариант заметно лучше
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: string и startsWith
«
Ответ #126 :
Май 30, 2013, 11:42 »
Цитата: Igors от Май 30, 2013, 08:45
Откуда такая злобв к велику? Ну не увидел этой вещички в бусте, ну сделал свою - почему это преступление? Почему я был обязан непременно найти и воспользоваться, почему Вы считаете это "делом чести", "показателем класса"? Это же чущь собачья
Да никому вы ничем не обязаны.
Я уже несколько раз только в этой теме писал свои мысли по поводу велосипедов, если вы не в состоянии их прочесть или понять, я ничем не смогу вам помочь.
Что касается конкретно этого велосипеда, то вот ключевой момент:
Цитата: Igors от Май 30, 2013, 08:45
Ну не увидел этой вещички в бусте
Вы просто не знали, что уже есть готовое. Можно было просто сказать: "Я не знал". В этом нет ничего дурного, н овы начали придумывать какие-то нелепые причины. именно это всех и забавляет.
Цитата: Igors от Май 30, 2013, 08:45
Но подавляющее большинство считает себя умнее - и сразу начинает с вектора.
Вот-вот. Загляните к себе в исходники и ужаснетесь.
Записан
Spark
Гость
Re: string и startsWith
«
Ответ #127 :
Май 30, 2013, 11:44 »
Цитата: thechicho от Май 30, 2013, 08:49
Spark
, ну
Igors
вам популярно намекнул, что надо начинать с частностей, а потом переходить к целому, выражаясь вашим
Конечно же я это понял. Но дело не в этом у меня своя голова все таки есть
и есть практический опыт в других областях. И практика показывает, что такой подход часто ведет к затягиванию процесс, тем более процесса обучения. Если перфекционизм в крови надо уметь искусственно освобождать себя от этого качества и помнить, что далеко не всегда в космос ракеты запускаем.
Цитата: Igors от Май 26, 2013, 10:59
Ну Вы же сами понимаете - это халтура. Давайте перельем строку из одного представления в другое, где есть удобные утилиты, а потом обратно. Да, делов неск секунд, но ведь платим оптимальностью. Вот кто-то ускорит Ваш код раз так в 20 и скажет типа "там какой-то лошара писал, с пых-пых наверно". И, поверьте, будет неприятно.
И вот здесь горький опыт говорит, что пользователю на это ровным счетом наплевать. Код его не волнует (с точки зрения как это устроено), для него важна сама идея и реализация.
Записан
Spark
Гость
Re: string и startsWith
«
Ответ #128 :
Май 30, 2013, 11:57 »
Цитата: thechicho от Май 30, 2013, 11:19
нет требований и тз. есть задача, которую надо решить.
в контексте задачи ТС видно, что не имеет значения отработает код 1 микросекунду или 20.
вообще не понятно, почему он решил работать с qt, учитывая что в коде std::string.
Вроде как пояснял. Объект трасплантации межплатформенный и делался с использованием Qt. Я правлю нужный мне модуль. Поэтому частные задачи вытекают не из моих соображений, а то, что диктуют условия. Изменить весь код я не смогу как бы я не старался. Программа слишком сложна для меня, с моим скромным опытом. Мне бы научиться в интерфейс вносить нужные мне изменения и доделать свой модуль (пожалуй он уникален в своем роде).
На счет микросекун. В принципе в конечном итоге возможно они будут важны, но мне не до этого. Оптимизировать можно будет потом. Важно довести саму идею до ума. И пока я не ощущаю задержку вывода информации
.
Но как нибудь я выдам на суд программный продукт
.
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: string и startsWith
«
Ответ #129 :
Май 30, 2013, 12:13 »
Цитата: thechicho от Май 30, 2013, 11:19
//этих микросекунд и недостаточно
для чего?
А я тоже этого не знаю. Может для чего-то и недостаточно. Вы же тоже не можете этого гарантировать? Мало того, Вы даже не можете оценить степень точности своего прогноза относительно количества микросекунд. Но уверенно заявляете, что Вам на эти микросекунды наплевать.
Цитата: thechicho от Май 30, 2013, 11:19
в контексте задачи ТС видно, что не имеет значения отработает код 1 микросекунду или 20.
1. Я где-то говорил про то, что это нужно ТС?
2. Мне лично - не видно. Я не знаю зачем ТС смешивать строки разных типов. Может он управляет сложными технологическими процессами с критическим временем доступа или, например, этот участок кода выполняется миллион раз.
3. Задача ТС вполне успешно решена много страниц назад, а весь дальнейший флейм давно уже никаким боком к проблемам ТС не относится.
«
Последнее редактирование: Май 30, 2013, 12:16 от xokc
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: string и startsWith
«
Ответ #130 :
Май 30, 2013, 12:32 »
Цитата: Old от Май 30, 2013, 11:42
Вы просто не знали, что уже есть готовое. Можно было просто сказать: "Я не знал". В этом нет ничего дурного, н овы начали придумывать какие-то нелепые причины
Конечно не знал, и никаких причин не выдумывал. Просто от того что я написал это сам - мне аедь хуже не стало
Цитата: Spark от Май 30, 2013, 11:44
И вот здесь горький опыт говорит, что пользователю на это ровным счетом наплевать. Код его не волнует (с точки зрения как это устроено), для него важна сама идея и реализация.
Наверное Вы хотели сказать "результат" (вместо "реализация"). Но позволив себе схалтурить раз - потом остановиться уже очень трудно, практически невозможно. Ну вот обсуждение показало что есть прекрасное решение на бусте. Но над Вами уже "довлеет" написанный и работающий код, что-то менять - страшно трудно. И причин для оправдания найдется сколько угодно (излишний перфекционизм, фанатичная оптимизация, юзеру все равно - все мы прекрасно умеем прикрыть свою лень, я тоже
). А дальше все катится по принципу "и так сойдет" - ведь оно уже успешно проходило. Идеального кода наверное не существует, но всегда идти "по пути наименьшего сопротивления" все же не стоит (тем более если тонной написанного кода Вы еще не обзавелись).
Записан
Spark
Гость
Re: string и startsWith
«
Ответ #131 :
Май 30, 2013, 12:33 »
Цитата: xokc от Май 30, 2013, 12:13
Мне лично - не видно. Я не знаю зачем ТС смешивать строки разных типов. Может он управляет сложными технологическими процессами с критическим временем доступа или, например, этот участок кода выполняется миллион раз.
Второе. Не миллион конечно, но с 1000 вполне может быть.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: string и startsWith
«
Ответ #132 :
Май 30, 2013, 12:39 »
Цитата: Igors от Май 30, 2013, 12:32
Конечно не знал, и никаких причин не выдумывал. Просто от того что я написал это сам - мне аедь хуже не стало
Смотрим развитие событий... ТС нужны регулярные выражения. Вы готовы исправить ваше решение для этого? Минут же за 10-15. Нет?
Ваше решение продержалось недолго, и полетело в мусор. А мы спешим или к boost или Qt. Все мы поехали дальше, машем вам рукой....
«
Последнее редактирование: Май 30, 2013, 12:41 от Old
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: string и startsWith
«
Ответ #133 :
Май 30, 2013, 12:43 »
Цитата: Spark от Май 30, 2013, 12:33
Второе. Не миллион конечно, но с 1000 вполне может быть.
Да дело даже не в скорости (или не только в ней). В рамках модуля (или по крайней мере файла) строковый тип должен быть однообразным. Перекачивая туда-сюда Вы как бы заявляете "ну я совсем уже бедный и больной, не бейте" - такой подход, мягко говоря, "несолидный"
Записан
thechicho
Гость
Re: string и startsWith
«
Ответ #134 :
Май 30, 2013, 13:13 »
//В рамках модуля (или по крайней мере файла) строковый тип должен быть однообразным.
ТС адаптирует код под свои нужды. следуя вашей логике, ему либо нужно переписать чужой код средствами qt, либо писать стандартными средствами языка. второй вариант для ТС оказался затруднительным, а решение нужно сейчас.
Цитата: Spark от Май 30, 2013, 11:57
Оптимизировать можно будет потом. Важно довести саму идею до ума.
Записан
Страниц:
1
...
7
8
[
9
]
10
11
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...