![]() |
![]() |
IUnknown |
![]()
Сообщение
#1
|
|||
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не надо уводить от одной задачи, и приводить к другой... Вот так, как ты написал в самом верхнем примере, не делается перемешивание. Так генерируются данные уже в перемешанном виде, правда? А то как ты показывешь ниже - это как раз перемешивание (т.е., ранее сгенерировал в прямой последовательности, а потом - перетусовал)... Есть 2 большие разницы между этими вещами. Не надо их сливать в одно, и уж тем более - нельзя сравнивать их быстродействие. Потому что я могу с легкостью сделать так: for i := 1 to n do begin, и все будет по-прежнему работать; независимо от того, насколько сложный объект содержится в контейнере, он будет инициализироваться целочисленным значением ОДИН раз, и не будет никаких копирований с места на место, которые могут запросто убить весь тот прирост производительности (если он даже и есть): тебе для того, чтобы поменять местами 2 элемента массива надо инициализировать временный элемент, потом произвести 3 операции копирования, потом временный элемент деинициализировать. Это может быть дольше, чем мой цикл Кстати, (Показать/Скрыть)
Особенно актуально все вышесказанное становится в свете того, что ты сам заговорил о "сапёре" - ну вот решил я написать "сапёра" с использованием ООП (и не надо мне говорить что это неправильно - как хочу, так и пишу), а твой способ, как оказывается, просто не подходит для этого (если работать сразу с массивом объектов). В крайнем случае - можно воспользоваться советом, и перемешать указанным образом вспомогательный индексный массив, а потом уже пройти по нему и в нужном порядке проинициализировать элементы рабочего массива объектов: Вот так (Показать/Скрыть)
|
|||
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Каким-то образом я проглядел пост IUnknown, хотя заглядывал специально в обсуждаемую тему при написании того замечания об обсуждении (наверное, заглянул в таб, не обновив)). Приношу свои извинения и делаю этот своеборазный Up
![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 10.09.2025 14:18 |