![]() |
|
Структура и соответствие это ассоциативный массив? | ☑ | ||
---|---|---|---|---|
0
ДНН
17.08.20
✎
17:03
|
В продолжение темы про массивы В 1С массив это массив или связный список?
Структура и соответствие это тоже массивы, только ассоциативные? Для каждого ключа через хеш-функцию вычисляется индекс в этом массиве и в элемент с этим индексом помещается значение? Или как они устроены? |
|||
1
Garykom
гуру
17.08.20
✎
17:07
|
(0) тоже самое, просто отсортировано
|
|||
2
ДНН
17.08.20
✎
17:10
|
(1) Отсортировано по хешу?
Вот такой код для соответствия выдал значения в произвольном порядке, а для структуры в том же порядке, в котором добавлял: Стр = Новый Соответствие; Для ё = 0 По 1000 ЦИкл й = 1000 - ё; Стр.Вставить("а" + Формат(й, "ЧГ=0"), й); КонецЦикла; Для Каждого Кл Из СТр Цикл Сообщить(Кл.Значение); КонецЦикла; |
|||
3
ДНН
17.08.20
✎
17:15
|
Скорее всего структура просто хранит ссылки на объекты типа КлючИЗначение, поэтому в структуре ключи хранятся в порядке добавления их в структуру. То есть это тот же самый массив, только тип фиксирован.
А соответствие это ассоциативный массив, когда для ключа вычисляется хеш и значение помещается в индекс равный хешу. Или нет? |
|||
4
Garykom
гуру
17.08.20
✎
17:17
|
(3) хз
но для ускорения доступа нужны некие хеши, вероятно по ним и сортируется |
|||
5
VladZ
17.08.20
✎
17:18
|
(0) А тебе это зачем?
|
|||
6
Конструктор1С
17.08.20
✎
17:18
|
Что сделать-то хочешь?
|
|||
7
ДНН
17.08.20
✎
17:25
|
(5) (6) понять как это устроено
|
|||
8
VladZ
17.08.20
✎
17:29
|
(7) Допустим ты понял. Что дальше?
|
|||
9
Garikk
17.08.20
✎
17:33
|
вообще забавно, тот факт что одинесники понятия не имеют в чем различия объектов для хранения данных платформы, показатель того что они те ещё погромисты
|
|||
10
Мимохожий Однако
17.08.20
✎
17:36
|
(9) Ты себя к какой категории относишь? )
|
|||
11
ДНН
17.08.20
✎
17:38
|
(8) Допустим нужно хранить большой объем данных (пусть будут строки), потом перебирать другой массив данных (тоже строки) и проверять есть ли они в первом массиве. Вот что лучше использовать для хранения первого объема данных? Массив? Соответствие? А может вообще структуру? А главное почему какие-то коллекции работают быстрее других при поиске, какие-то при вставке, какие-то при получении элемента по индексу. Где-то все равно это пригодится.
|
|||
12
Вафель
17.08.20
✎
17:39
|
(11) для больших объемов лучше мердж использовать
|
|||
13
Мимохожий Однако
17.08.20
✎
17:40
|
(11) Для однотипных данных лучше массив.
|
|||
14
Вафель
17.08.20
✎
17:40
|
(13) в массиве поиск перебором
|
|||
15
ДНН
17.08.20
✎
17:41
|
(13) 1С говорит, что лучше соответствие. Потому что в массиве для поиска перебираются все элементы и время поиска пропорционально размеру массива, а в соответствии время поиска фиксированно.
|
|||
16
Garikk
17.08.20
✎
17:42
|
(10) я не одинесник сейчас, но структуры хранения данных учил ещё до того как в 1С-сферу попал
но к слову я хз как в 1С оно устроено, по методике работы в 1С обычно массивы редко используются напрямую чтобы в них производительность упиралась, хотя знать это полезно конечно |
|||
17
ДНН
17.08.20
✎
17:45
|
(15) не фиксированное, а константное
|
|||
18
Ненавижу 1С
гуру
17.08.20
✎
18:01
|
С точки зрения абстракции 1с - это всё равно как внутри устроено
|
|||
19
Конструктор1С
17.08.20
✎
18:14
|
(9) какой-нибудь сишник может точно также постебаться над тобой на предмет неумения работать напрямую с памятью. И найдётся какой-нибудь системщик, который также постебётся над тем сишником на предмет ещё более низкоуровневых технологий... в конце этой бессмысленной и беспощадной иерархии программистской псевдограмостности окажутся какие-нибудь дедушки, которые ещё в двоичном коде программы фигачили
|
|||
20
mistеr
17.08.20
✎
18:15
|
(15) Это позволяет предположить, что Соответствие реализовано как хэш-таблица.
А искать в массиве можно по-разному. Можно отсортировать и бинарным поиском, например. А еще есть ТЗ с индексами. |
|||
21
VladZ
17.08.20
✎
18:24
|
(11) Большой объем данных лучше хранить во внешней БД.
|
|||
22
Garykom
гуру
17.08.20
✎
18:42
|
(11) РС или внешняя бд
|
|||
23
Сергиус
17.08.20
✎
23:06
|
||||
24
Сергиус
17.08.20
✎
23:07
|
||||
25
ДенисЧ
18.08.20
✎
05:16
|
(20) "Это позволяет предположить, что Соответствие реализовано как хэш-таблица."
Погоны капитана выдать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |