Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну чисто о поставленной задаче. Удалить значение и пустые
ещё функцию добавить, чтобы можно фильтровать по критерию и захорошеет. Можно будет даже в коллекцию утащить :-)
что-то типа
чтобы например вытащить все значения большие 3-х: arrayFilter<long>(array,3,GreaterThen<long>)
не уверен что шаблоны MQL легко позволят такое сделать
не навязываю.
Спасибо, Вы сегодня любезны :-)
По задаче. Имхо удобнее оперировать с таким типом из коллекции данных как CArrayDouble. Мой пример:
Правда есть недостаток. На выходе получим отсортированный массив.
охх, иногда лучше промолчать и показаться дураком, чем...
чем что либо сказать и развеять все сомнения....
Есть массив содержащий набор данных по типу 1,2,3,6,9,5,6,3,25,6,8,7,4 нужно удалить например значения 3 и на выходе получить тот же массив без 3 и пустых мест...
Я ищу самый быстрый способ очистки массива от ненужных значений...
На ум приходит такой пример
Может есть способы экономнее и быстрее ?
Делая цикл по массиву и убирая из него ненужные значения, переписывайте значение в следующей ячейке на место убранной. Делайте сдвиг влево всех значений, идущих за стертым значением и подсчитывайте количество стертых значений в счетчике.
Потом делайте ArrayResize() с учетом количества стертых значений.
Зы. Значения которые нужно стирать не переносите. Можно переносить влево все значения, кроме тех, что стираете.
Сдвиг значений влево должен быть равен количеству стертых ячеек.
Глупый вопрос, это не заданный вопрос.
У меня есть несколько вариантов решения задачи, но я продолжаю искать лучшие решения и учиться у других.
Вы уже несколько лет задаете подобные вопросы. Многому научились? Извините, но видно что Вы как ковырялись на уровне байтов и элементарных массивов, так и остались там.
Сам вопрос сформулирован неверно. Задача не в удалении повторяющихся значений (задача уровня ОГЭ) а в нечто большем, по всей видимости актуализируете список валидных элементов. Раз так, то и вопрос совсем иначе должен звучать. Вы же запутываете и вводите в заблуждение участников и прежде всего себя: навязывайте участникам неверное решение в принципе и просите его сделать эффективным.
Делая цикл по массиву и убирая из него ненужные значения, переписывайте значение в следующей ячейке на место убранной. Делайте сдвиг влево всех значений, идущих за стертым значением и подсчитывайте количество стертых значений в счетчике.
Потом делайте ArrayResize() с учетом количества стертых значений.
Зы. Значения которые нужно стирать не переносите. Можно переносить влево все значения, кроме тех, что стираете.
Сдвиг значений влево должен быть равен количеству стертых ячеек.
Проверьте этот вариант.
Сорри. Там похоже строчки надо местами поменять:
Сорри. Там похоже строчки надо местами поменять:
Загадка: Сколько будет у Буратино яблок, если Мальвина даст ему два, а папа Карло три яблока?
Ответ: Десять. Исходные переменные нужно инициализировать.
Сорри. Там похоже строчки надо местами поменять:
Еще доработка: