Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Основная задача очистить массив от заданных значений.
Это не может быть основной задачей. Что в этот массив собирается и как потом используется?
Ну это не серьезно. Если притягивать слонов для решения конкретно этой мелкой задачи, то я бы упомянул STL::remove(array, value).
Это как раз очень серьёзно и фундаментально. MQL просто многословен. До ужаса.
Такие основополагающие операторы как filter (а у ТС это же он, фильтрация), map (отображение), fold (свёртка, суммарный итог)
должны реализовываться на раз, и без вопросов. И быть оптимизированы.
Это как раз очень серьёзно и фундаментально. MQL просто многословен. До ужаса.
Такие основополагающие операторы как filter (а у ТС это же он, фильтрация), map (отображение), fold (свёртка, суммарный итог)
должны реализовываться на раз, и без вопросов. И быть оптимизированы.
Речь о том, что тянуть такую жирную ("фундаментальную") зависимость для мелкой задачки - нонсенс. Если писать всё по-уму и рефакторить весь проект целиком - тогда, конечно, но это не суть исходного вопроса.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Очистка массива от заданного (ых) элементов
Dmitry Fedoseev, 2018.11.12 23:05
Это какой-то позор... ©
1. Сравнивать переменные типа double через ==, мягко говоря, не комильфо;
2. Сложность кода O(n^2), при этом худшая сложность для данной задачи с не отсортированной входной последовательностью должна быть O(n);
3. Код не рабочий, так как при реальном использовании функции не возможно определить сколько действительных значений содержит возвращаемый массив:
Результат выполнения:
Красным выделены недействительные значения, которые так и не были удаленны из массива.
Это какой-то позор... ©
1. Сравнивать переменные типа double через ==, мягко говоря, не комильфо;
2. Сложность кода O(n^2), при этом худшая сложность для данной задачи с не отсортированной входной последовательностью должна быть O(n);
3. Код не рабочий, так как при реальном использовании функции не возможно определить сколько действительных значений содержит возвращаемый массив:
Результат выполнения:
Красным выделены недействительные значения, которые так и не были удаленны из массива.
Дзюблик? Пусть так. Сравнивать переменные типа double очень даже комильфо, если они не вычислены перед сравнением.
Учите матчасть. Что там, насчет позора?
Это какой-то позор... ©
1. Сравнивать переменные типа double через ==, мягко говоря, не комильфо;
2. Сложность кода O(n^2), при этом худшая сложность для данной задачи с не отсортированной входной последовательностью должна быть O(n);
3. Код не рабочий, так как при реальном использовании функции не возможно определить сколько действительных значений содержит возвращаемый массив:
Результат выполнения:
Красным выделены недействительные значения, которые так и не были удаленны из массива.
Да не несите чушь. Объяснить вам вашу ошибку, или сами догадаетесь? Вообще не сложно...
Три пункта - три загона. Хотя, нет, только два загона.
ps но я в вас верю
ps2 вот какой результат если пользоваться функцией правильно:
Вот так лучше:
Вот так лучше:
Дмитрий, расстрою - v - тоже массив.
И вообще, все это - полная ерунда.
Дмитрий, расстрою - v - тоже массив.
И вообще, все это - полная ерунда.
Если v массив - это не проблема. А то, что ерунда - скорее да. У меня вот ни разу не возникало потребности в решении это задачи.
Ну если уж пошла такая пьянка-соревновалка по скорости, то предложу и свой вариант:
Написал тестовый скрипт на все варианты.
Кто следующий? :))Вот результат для массива размерностью в 1 000 000 элементов (лишних значений около 1000):
Пётр, Ауууу....