Как добится непрерывности массива?

Добавлен
Как можно обеспечить непрерывность массива, т. е. чтобы массив не содержал пустых элементов? Или как определить длинну массива? Можно ли удалять элементы массива? Т. е. не присваивать нулевые значения элементу, а именно удалять элемент.

Принятый ответ

Нашёл решение здесь
0
17
11 лет назад
0
Зачем? О.о
1
22
11 лет назад
1
У меня есть массив переменных типа группа. Количество элементов в нём не ограничено и постоянно меняется. Мне нужно совершать действия с каждым элементом через цикл. Если выход из цикла будет осуществляться, когда очередной элемент равен null, тогда есть вероятность пропустить оставшиеся элементы из-за этого промежутка. Это можно исправить, сделав выход цикла когда итератор превысит длину массива. Но как узнать длину массива? К тому же, у меня нет желания позволять циклу делать лишние итерации с пустыми элементами. Можно взять вместо длинны какое-то фиксированное значение, но есть вероятность что длинна массива будет превышать это значение. Ограничить длину массива? Возможно. Тем не менее, опять же, нет желания позволять циклу лишние итерации.
+
Возможно в cJass есть такие функции?
0
31
11 лет назад
0
Но как узнать длину массива?
ммм...
ну к примеру считать самому...
создать переменную Index
заполнить первую ячейку массива ;
Index++;
и так далее...
Index тебе и покажет длину массива...
0
22
11 лет назад
Отредактирован Zahanc
0
Т.е. Вы предлагаете при добавлении/удалении элемента в массив увеличивать/уменьшать значение в переменной типа целочисленная на 1, так? А если в массиве есть промежуток?
+
Хотя стоп, кажеться дошло. Можно так:
Целочисленная переменная L - длинна массива.
I - индекс добавляемого элемента.
Когда добавляем новый элемент с индексом I в массив, сравниваем I > L. Если да, то L = I.
+
А как тогда укорачивать длинну массива?
0
31
11 лет назад
0
наверняка не знаю...
но вроде бы удалять из массива элементы не получится...
только обнулять и перезаписывать
0
4
11 лет назад
Отредактирован I_D_
0
создать две целочисленных I индекс массива и L его длина перед заполнением элемента прогоняем цикл по любой переменной до его длины L и проверяем если в ячейки нет значения пишем номер ячейки в I после чего проверяем если I<L то перекидоваем значение с последней ячейки в ячейку I и обнуляем последнию ячейку после чего уменьшаем длину на 1 L=L-1 если I>L то ничего не делаем если I=L то уменьшаем длину L=L-1
как то так
0
22
11 лет назад
Отредактирован Zahanc
0
Нашёл решение здесь
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.