Вход | Регистрация
 

Структура и соответствие это ассоциативный массив?

Структура и соответствие это ассоциативный массив?
Я
   ДНН
 
17.08.20 - 17:03
В продолжение темы про массивы В 1С массив это массив или связный список?
Структура и соответствие это тоже массивы, только ассоциативные? Для каждого ключа через хеш-функцию вычисляется индекс в этом массиве и в элемент с этим индексом помещается значение? Или как они устроены?
   Garykom
 
1 - 17.08.20 - 17:07
(0) тоже самое, просто отсортировано
   ДНН
 
2 - 17.08.20 - 17:10
(1) Отсортировано по хешу?
Вот такой код для соответствия выдал значения в произвольном порядке, а для структуры в том же порядке, в котором добавлял:

Стр = Новый Соответствие;
Для ё = 0 По 1000 ЦИкл
    й = 1000 - ё;
    Стр.Вставить("а" + Формат(й, "ЧГ=0"), й);    
КонецЦикла;    
    
Для Каждого Кл Из СТр Цикл
    Сообщить(Кл.Значение);
КонецЦикла;
   ДНН
 
3 - 17.08.20 - 17:15
Скорее всего структура просто хранит ссылки на объекты типа КлючИЗначение, поэтому в структуре ключи хранятся в порядке добавления их в структуру. То есть это тот же самый массив, только тип фиксирован.
А соответствие это ассоциативный массив, когда для ключа вычисляется хеш и значение помещается в индекс равный хешу.
Или нет?
   Garykom
 
4 - 17.08.20 - 17:17
(3) хз
но для ускорения доступа нужны некие хеши, вероятно по ним и сортируется
   VladZ
 
5 - 17.08.20 - 17:18
(0) А тебе это зачем?
   Конструктор1С
 
6 - 17.08.20 - 17:18
Что сделать-то хочешь?
   ДНН
 
7 - 17.08.20 - 17:25
(5) (6) понять как это устроено
   VladZ
 
8 - 17.08.20 - 17:29
(7) Допустим ты понял. Что дальше?
   Garikk
 
9 - 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С говорит, что лучше соответствие. Потому что в массиве для поиска перебираются все элементы и время поиска пропорционально размеру массива, а в соответствии время поиска фиксированно.
   Garikk
 
16 - 17.08.20 - 17:42
(10) я не одинесник сейчас, но структуры хранения данных учил ещё до того как в 1С-сферу попал

но к слову я хз как в 1С оно устроено, по методике работы в 1С обычно массивы редко используются напрямую чтобы в них производительность упиралась, хотя знать это полезно конечно
   ДНН
 
17 - 17.08.20 - 17:45
(15) не фиксированное, а константное
   Ненавижу 1С
 
18 - 17.08.20 - 18:01
С точки зрения абстракции 1с - это всё равно как внутри устроено
   Конструктор1С
 
19 - 17.08.20 - 18:14
(9) какой-нибудь сишник может точно также постебаться над тобой на предмет неумения работать напрямую с памятью. И найдётся какой-нибудь системщик, который также постебётся над тем сишником на предмет ещё более низкоуровневых технологий... в конце этой бессмысленной и беспощадной иерархии программистской псевдограмостности окажутся какие-нибудь дедушки, которые ещё в двоичном коде программы фигачили
   mistеr
 
20 - 17.08.20 - 18:15
(15) Это позволяет предположить, что Соответствие реализовано как хэш-таблица.

А искать в массиве можно по-разному. Можно отсортировать и бинарным поиском, например.

А еще есть ТЗ с индексами.
   VladZ
 
21 - 17.08.20 - 18:24
(11) Большой объем данных лучше хранить во внешней БД.
   Garykom
 
22 - 17.08.20 - 18:42
(11) РС или внешняя бд
   Сергиус
 
23 - 17.08.20 - 23:06
   Сергиус
 
24 - 17.08.20 - 23:07
+(23)http://catalog.mista.ru/public/142517/

Здесь более подробно описаны отличия
   ДенисЧ
 
25 - 18.08.20 - 05:16
(20) "Это позволяет предположить, что Соответствие реализовано как хэш-таблица."

Погоны капитана выдать?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.