
Дед Пегас
27.02.2017
12:55:21
Да нет, вроде.
Обычный поиск.
Если функция у тебя чистая выходит. Т.е. больше этого кода там ничо нет.

Sergey
27.02.2017
12:55:54
можно std::find заюзать

Google

Sergey
27.02.2017
12:56:14
или не писать итераторы, а for ( const auto &val : m_Clients )
а в целом, ничего криминального

Ilya
27.02.2017
12:56:27
принял

Sergey
27.02.2017
12:57:00
грубо говоря, твоя запись подразумевает, что клиентов НАДО перебирать последовательно, а это не так

Stanislav
27.02.2017
12:57:11
ну и как вы собрались контролировать флагом компилятора это? если такая запись может встретится в инкладах 3rdparty либ? и константы все сломаются

Sergey
27.02.2017
12:57:18
for ( const auto &val : m_Clients ) - порядок обхода неважен
хоть одновременно

Ilya
27.02.2017
12:57:48
спасибо за объяснение, поправил

Sergey
27.02.2017
12:59:08

Stanislav
27.02.2017
12:59:33
я все про октеты

Sergey
27.02.2017
12:59:42
1. убрать 023123123 как восьмеричное число
2. постфиксы поменять на префиксы
3. сделать 0.2 - float по умолчанию

Дед Пегас
27.02.2017
13:00:10
Пункт 3 спорный, ИМХО.
Можно ж писать 0.2f

Google

Sergey
27.02.2017
13:00:29
по большей части, константы в программе задаются не слишком длинные
0.2, 3,14159 (нечего его переопределять лишний раз, кстати), и.т.п.
0.5f - очень часто!
вот зачем мне "короткое" число по умолчанию задавать с двойной точностью
константы вроде 0.5 - останутся
а всякие там длиной с экран - пусть явно пишут, что они заданы уже с двойной точностью
или с четверной, или с какой еще понадобится

Sergey
27.02.2017
13:02:11
Например

Stanislav
27.02.2017
13:02:45
и вообще, раз на то пошло, то это надо не в С++ а в Си пропихивать

Sergey
27.02.2017
13:02:49
искуственный пример. long long - это индексы всякие

Sergey
27.02.2017
13:02:59
не проще написать предложение на stdcpp.ru?

Sergey
27.02.2017
13:03:00
на кой черт умножать их на float

Sergey
27.02.2017
13:03:01
Я понимаю, что вы графикой занимаетесь, вам точность не важна, а "коротких" чисел у вас много, но стоит понять, что большинство людей хотят точных вычислений

pinnokio
27.02.2017
13:03:13
и к каждому проекту приписку: "нас собирать с double" или "а у нас float"

Sergey
27.02.2017
13:03:55
стоит понять, что "большинство" не хочет ничего. им похрен на все.
а для вдумчивого кода - такое было бы удобно.
в третий раз скопировать чтоли написанное?
ну не задают в реальном коде очень точные числа, почти никогда
а всякие там "пополам" и "умножить на два" - часто

Sergey
27.02.2017
13:05:37
Да-да, окей, "большинство" ничего не хочет, только вы чего-то хотите и обязательно так и должно быть. Пишите на stdcpp.ru пока вас муза навестила вместо холиваров тут, а то выдохнетесь ещё и пропозала не выйдет.

Google

pinnokio
27.02.2017
13:06:19
If the hardware implements double (like the x86 does), then float is emulated by extending it there, and the conversion will cost time. In this case, double will be faster.

Sergey
27.02.2017
13:06:25
понятно. сергей, иди похами своей мамке.
float быстрее double
из-за AVX и прочего, видимо.

Tema
27.02.2017
13:09:46
ты возвращаеш указатель на временный объект?

Sergey
27.02.2017
13:10:14

Ilya
27.02.2017
13:10:35
именно

Дед Пегас
27.02.2017
13:10:44
Он не весь код показал.

Tema
27.02.2017
13:10:57
ну там ретурн видно

Дед Пегас
27.02.2017
13:11:21
Малавата будет!

Tema
27.02.2017
13:11:41

Ilya
27.02.2017
13:14:36

Sergey
27.02.2017
13:15:32
плохо

Sergey
27.02.2017
13:15:36
А чего не const auto в цикле?

Sergey
27.02.2017
13:15:47
если вектор реаллоцирует память - ссылки станут битыми

Ilya
27.02.2017
13:16:13
Более красивый способ подскажите?

Tema
27.02.2017
13:16:43

Sergey
27.02.2017
13:16:48
возвращать копию, а не ссылку. для такой небольшой структуры, некритично

Google

Sergey
27.02.2017
13:17:32
в данном случае, уик понтеры не дадут ничего хорошего, мне кажется
алсо, очевидно, что надо клиентов класть в std::map< id, ... >
типичный случай же. добавление, удаление, поиск.
удаление из вектора - дорогая операция
не будет проблем с уникальностью id, заодно. сейчас у вас ничто не защищает от запихивания двух клиентов с одним id, и находиться будет первый встреченный

Ilya
27.02.2017
13:20:38
пожалуй, так и сделаю

pinnokio
27.02.2017
13:22:24

Admin
ERROR: S client not available

pinnokio
27.02.2017
13:23:19
могу показать уродливый тест)

Sergey
27.02.2017
13:23:25
даже хз. выключена оптимизация, возможно
давай

pinnokio
27.02.2017
13:23:38
на -O2 собирал
давай
http://pastebin.com/7bxhZsQL

Sergey
27.02.2017
13:28:42
команда time же есть для такого
чтобы обвзяку измерения не писать

pinnokio
27.02.2017
13:30:17
мне захотелось так, это проблема? :)
могу перемерить с time, если нужно

Sergey
27.02.2017
13:31:04

pinnokio
27.02.2017
13:31:10
не, всё ок)

Google

Sergey
27.02.2017
13:31:10
реально же проще :)

Sergey
27.02.2017
13:31:54
начнем с того, что деление на ноль
val никуда не идет, на release это все вообще выкидывается
сейчас подправлю

pinnokio
27.02.2017
13:32:27
угу, точно
увлёкся леплением уродины)

Stanislav
27.02.2017
13:32:49

Sergey
27.02.2017
13:33:56
ммммм, синтетический тест в онлайн компиляторе? :)

Sergey
27.02.2017
13:34:14
и divisor на 2.3 поменять, например. чтобы корней из -1 не считать

Sergey
27.02.2017
13:36:13
» старкон2, запущенный в DosBox, под иксами в Дебиане, который запущен в VMWare, которая в WinXP

Nikolai
27.02.2017
13:38:58

pinnokio
27.02.2017
13:42:25
и с оптимизацией, и без

Sergey
27.02.2017
13:43:39
мда, на таком тесте слегка быстрее
с оптимизацией, с AVX2, с fast model

Stanislav
27.02.2017
14:06:19
кстати,в от что нам агнер пишет
Floating point calculations usually take the same time regardless of whether you are using
single precision or double precision, but there is a penalty for mixing single and double
precision in programs compiled for 64-bit operating systems and programs compiled for the
instruction set SSE2 or later

Будда
27.02.2017
14:09:54
Я Будда. Почему я не имею силы превратить строку в цифру? Указателю на строку разве не все равно, какой адрес иметь?

Andre
27.02.2017
14:12:13