Как можно передать двумерный массив в функцию таким образом чтобы не указывать что он двумерный? - страница 3
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
...Для этого лучше использовать перегрузку.
Перегрузка не срабатывает на многомерность. Здесь надо писать функции с разными именами для массивов разной размерности.
Перегрузка не срабатывает на многомерность. Здесь надо писать функции с разными именами для массивов разной размерности.
В общем что-то получилось. Можете посмотреть у меня тут не получается кое что
В конечном итоге залазит в первый цикл не смотря на то что это условие if(r==1)ложное, почему оно туда залазит если ранг равен 2ум, как оно несмотря на ложь заходит в тело где что-то выполняется.Функцию вызываю так
В общем что-то получилось. Можете посмотреть у меня тут не получается кое что
В конечном итоге залазит в первый цикл не смотря на то что это условие if(r==1)ложное, почему оно туда залазит если ранг равен 2ум, как оно несмотря на ложь заходит в тело где что-то выполняется.Функцию вызываю так
Забавно. Пока нет вызова функции MoveArray() все компилируется. А вот когда есть вызов - нет, компилятор ругается на вторую часть условия, где другой массив.
Ну оно и правильно, потому-что это неправильный подход.
Вот так надо (перегрузкой пользоваться, а не городить огород ведущий к тормозам):
А еще лучше, вот так (тут массив и в структуру помещать не надо):
===
Объясните, зачем нужна такая универсальность к которой вы тут стремитесь?
---
Да, и вот этот сдвиг можно сделать функцией ArrayCopy() с массивами любой размерности. Даже где-то писал тут эти функции, только как найти не помню.
===
Объясните, зачем нужна такая универсальность к которой вы тут стремитесь?
---
Да, и вот этот сдвиг можно сделать функцией ArrayCopy() с массивами любой размерности. Даже где-то писал тут эти функции, только как найти не помню.
И я о том-же. Даже в сообщении №14 сделал примеры. И даже перепроверил, работает. Но ТС рассуждает так: "Мы не ищем лёгких путей".
И я о том-же. Даже в сообщении №14 сделал примеры. И даже перепроверил, работает. Но ТС рассуждает так: "Мы не ищем лёгких путей".
Ну так можно написать 20 функций под каждый массив да и нормально пусть запускает 20 функций, пусть погоняет каждый массив или по копирует, пусть проинициализирует сотни переменных и о какой производительности может идти речь? Тупизм какой-то да и только. Копировать массивы ну да можно скопировать 20 массивов в другие 20 ну и нормально пусть 2 минтуы считает а к концу написания программы будет час считать.
Забавно. Пока нет вызова функции MoveArray() все компилируется. А вот когда есть вызов - нет, компилятор ругается на вторую часть условия, где другой массив.
А еще лучше, вот так (тут массив и в структуру помещать не надо):
Ладно придётся кучу функций делать. Я хочу сделать функции универсальными для того чтобы программа содержала меньше проверок и кода, меньше инициализировала переменных и функций, меньше вызывала функций чтобы она меньше считала и была компактной и чтобы в конечном итоге производительность была высокой. Интересно то почему несмотря на ложь в данном условии программа всё равно залазит в ложное условие и выбивает ошибку. Также интересно то что сам С++ поддерживает подобные махинации а MQL4 нет. Также в принципе в исходном коде можно было настроить разработчикам эту идею, зачем передавать массив в функции если такие ограниченные возможности это тупизм и тормознутость. Ладно ребята извините. Если будет возможность отпишитесь когда-нибудь если будут идеи.
Ну так можно написать 20 функций под каждый массив да и нормально пусть запускает 20 функций, пусть погоняет каждый массив или по копирует, пусть проинициализирует сотни переменных и о какой производительности может идти речь? Тупизм какой-то да и только. Копировать массивы ну да можно скопировать 20 массивов в другие 20 ну и нормально пусть 2 минтуы считает а к концу написания программы будет час считать.
Зачем пару строк кода оформлять в отдельную функцию? Где сказано копировать в другие массивы??? В моих примерах массив копируется "сам в себя".
Зачем пару строк кода оформлять в отдельную функцию? Где сказано копировать в другие массивы??? В моих примерах массив копируется "сам в себя".
Потому что в функциях которые пишешь сам, создаёшь дополнительные другие настройки и параметры которые в свою очередь ещё не реализованы, поэтому создать что-то своё тоже очень интересно и нужно.
очень интересно и нужно.
Чесать левое ухо мизинцем правой ноги тоже интересно. Желаю удачи. Постараюсь больше не встревать в эту тему.
Ладно придётся кучу функций делать. Я хочу сделать функции универсальными для того чтобы программа содержала меньше проверок и кода, меньше инициализировала переменных и функций, меньше вызывала функций чтобы она меньше считала и была компактной и чтобы в конечном итоге производительность была высокой. Интересно то почему несмотря на ложь в данном условии программа всё равно залазит в ложное условие и выбивает ошибку. Также интересно то что сам С++ поддерживает подобные махинации а MQL4 нет. Также в принципе в исходном коде можно было настроить разработчикам эту идею, зачем передавать массив в функции если такие ограниченные возможности это тупизм и тормознутость. Ладно ребята извините. Если будет возможность отпишитесь когда-нибудь если будут идеи.
Как же вы пытаетесь сократить количество проверок, если сами делаете лишнюю проверку в функции, от которой легко избавиться если использовать перегрузку или функции с разными именами?