|
|
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
Для TStrings это можно сделать так: Код: pascal 1. 2. 3. 4. 5. А как сделать подобное для стека? Желательно без копирования в другие структуры. Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:12 |
|
||
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
"Как мне запрячь лошадь в мерседес, желательно без дополнительных устройств. С телегой это делается так: ..." Стэк как бы придуман для того, чтобы его элементы сохраняли свой порядок. Так что единственный вариант, который я вижу - написать хэлпер/наследника, добавив метод Shuffle(). И то не факт, что получится получить доступ к его элементам, возможно придётся писать свой аналог полностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:21 |
|
||
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
А в чём смысл вообще использовать стэк, чтобы использовать его не как стэк? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:23 |
|
||
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам А в чём смысл вообще использовать стэк, чтобы использовать его не как стэк? После перемешивания далее он и будет использоваться как стэк, со всеми его фичами. Но раз "нет", так нет - пойду другим путем. Вопрос снимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:25 |
|
||
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
LiYing Гаджимурадов Рустам А в чём смысл вообще использовать стэк, чтобы использовать его не как стэк? После перемешивания далее он и будет использоваться как стэк, со всеми его фичами. как-то сложно представляю, какое применение вот этому всему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:31 |
|
||
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
Нет, теоретически можно придумать что-то вроде решафл барабана лотереи или колоды карт, но сама логика странная. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:35 |
|
||
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
Т.е. это должен быть наследник (или не наследник), который расширяет интерфейс стэка, как минимум, одним методом Shuffle. По ходу и другие требования всплывут, наверняка. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:37 |
|
||
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
defecator как-то сложно представляю, какое применение вот этому всему В теории - например, для перемешивания списка задач, если однотипные задачи генерятся пачкой, но надо дать выполниться и другим По теме: либо своя реализация, либо перетаскивать в промежуточное хранилище и заполнять стек заново. Либо допапываться до прямого доступа к элементам, если методы не строго приватные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:38 |
|
||
|
Перетасовать элементы TStack
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, Зачем вообще стек, если смысл - получать элементы в случайном порядке?.. Проще TList взять, перемешать и вызывать Extract(Last). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 12:55 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40047488&tid=2037595]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
141ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 438ms |

| 0 / 0 |
