Алексей Рытиков: ну вот в этом и вопрос, может есть возможность написать драйвер или еще как то что бы свести количество вводов пароля к одному - при инстале и все.
Да я так и сделал, решил что обычная реализация будет проще/понятнее для будущей отладки. Но вот насчет типов данных в очереди проблем как раз я бы не увидел. У меня были бы умные указатели на обьекты.
@prometian главное думать головой :) у всех свой опыт и обычно нельзя категорично следовать. Вот мне на одной работе запрещали бустом пользоваться, на другой чутли не заставляли :D у меня когнитивного диссонанса не возникало, и там и так сказал ок и просто понял почему они так решили. Главное договориться с командой и самим собой :) Если решил работать одним способом, то желательно уже так делать везде и все :)
@Espleth вообще, с учетом алгоритма должно быть от одинаково то до с# изза дополнительных рантайм проверок. Ускорить с++ код можно даже в таком виде, но и код сам поменяется. В таком виде как сейчас чисто арифметические операции, странно было б если б современный JIT компилятор шарпа не смог бы с таким разобраться. единственное, что я юзал 2012ую студию. Возможно там компилятор в вашей студии умеет какое нибудь многопоточное распаралеливание или еще чего, что не умеет в с++.
@Espleth да код вполне нормальный, кроме пары моментов с кодстайлом, но то лично мои предрасудки. Конечно можно убрать статик и еще руками прописать __forceinline. у меня результат что в шарпе что в с++ с вашим кодом получился одинаковый, в обоих случаях в среднем 5.5 секунд что для меня в данном случае звучит логично. Какой то глупости откровенной нет (не считая что с начала билдили в дебаге :)) есди ващу строяку qSort заменить на std::sort(arr, arr + length); то у меня вышло почти в 4 раза быстрее за 1.5 секунд.
@alexclear Но я все же ставлю на дебаг режим в этом случае, стдшный вектор никак не тормозит по сравнению с указателями в релизе. А вот в дебаге добавляется куча проверок.
@alexclear предпосылка не верная. Человек написал что то и это что то у него вышло в одном языке быстрее в другом медленнее. Это все что мы знаем. Мы даже не знаем догадался ли он в релизе собрать С++ код. А аллокаторы в с++ можно использовать свои, если окажется что код тормозит из за памяти. В чем я в данный момент сомневаюсь.
Причем здесь аллокатор. К сожалению вы ошибаетесь. Есть куча алгоритмов сортировки, тот же inplace. Скорее всего автор реализовал кривой алгоритм и все. один и тот же код может тормозить на одном языке и не тормозить на другом.
Странно, я даже внутри неймспейса если очень надо набираю Elf:: и все вижу. Потом если оно лишнее удаляю). В любом случае если вы так делаете, то ничего страшного, главное уже используйте везде такой подход и все. Код вы пишите для себя в будущем, или для каких то возможно неизвестных вам людей. Меня б такой подход бы не смутил бы, просто использовал бы его как фичу и искал бы имена так же как и вы.