DataPack vs. CreateArray а разница?

Jafa

Участник
Сообщения
159
Реакции
3
Ребята подскажите а какая разница между DataPack который хранит в себе данные разных типов от того же CreateArray который делает то-же самое по своей сути..

Мне нужно создать двумерный массив данных в который можно записать разные типы данных (float, char, ind и т д).. как это сделать лучше? При этому нужно учесть что примерно раз в минуту будет происходить поиск в массиве.. а в нем будет примерно 1000 ячеек...
--- Добавлено позже ---
И как сделать двумерный массив CreateArray(); ?
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
@Jafa, adt array имеет больший функционал. Он располагает средствами для получения кол-ва хранимых элементов, работы с индексами, изменения содержимого, перемещения.
DataPack же более простое решение.
В твоем случае лучше adt array т.к. в datapack`е запутаешься и придется еще хранить размер записываемых строк и прочие сложности с положением указателя.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #3
Оффтоп
И как сделать двумерный массив CreateArray(); ?
Если я тебя правильно понял...
C-подобный:
Handle hArray = CreateArray(1);

for (int i =0; i<2; i++) {
    Handle hOtherArray = CreateArray(1);
    // Для примера, запишем в массивы что-то.
    PushArrayCell(hOtherArray, GetRandomInt(0, 100));

    // и запишем указатель на массив - в массив
    PushArrayCell(hArray, hOtherArray);
}

// Прочитаем, что запсалось в массивы, и закроем их.
for (int i = 0; i<2; i++) {
    Handle hOtherArray = GetArrayCell(hArray, i);
    PrintToServer("В массив #%d записалось число %d.", i, GetArrayCell(hOtherArray, 0));
    delete hOtherArray;
}
delete hArray;
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
Handle hArray = CreateArray(64); // мне кажется, тут можно размер меньше указать, но я пока полноценно не освоился в этих массивах, потому пускай будет такой размер. Надеюсь, ниже подскажут лучшее число для этого случая.
Если в массиве хранится строка - туда пишешь её макс. длину.
Во всех остальных случаях - 1
 
Сверху Снизу