Если достаточно смещения, то есть элементы второго массиву идут в том же порядке, что и основного массива, то достаточно написать функцию, в которой будет индекс пересчитываться. Можно и без функции - на лету вычислять. Всего-то - прибавить переменную.
Я понимаю, что вместо обращения к элементам массива М2 можно обращаться к элементам массива М1 добавив к индексам смещение D.
Но хотелось получать просто значения из массива М2 размещенного динамически на области памяти массива М1 без указания дополнительных параметров (смещения).
Встроенные массивы - сущности неполноценные (нельзя указатель на них), если не ошибаюсь, поэтому нужна обёртка. Могу предложить такой вариант https://www.mql5.com/ru/forum/221917/page26#comment_11233214
class Awrap { const vector_fund<int> *ar; uint shift; public: Awrap(const vector_fund<int> &_ar, uint _shift): ar(&_ar), shift(_shift) {} int operator [](uint i) {return ar.a[i+this.shift];} uint size() {return this.ar.size()-this.shift;} }; void OnStart() { vector_fund<int> v; v.push_back(0); v.push_back(1); v.push_back(2); v.push_back(3); Awrap wr(v, 2); Alert(wr.size()); // 2 for (uint i = 0; i < wr.size(); ++ i) Alert(wr[i]); // 2, 3 }Я на коленках писал, вам, наверное, ещё и кол-во элементов нужно в Awrap передавать.
Встроенные массивы - сущности неполноценные (нельзя указатель на них), если не ошибаюсь, поэтому нужна обёртка. Могу предложить такой вариант https://www.mql5.com/ru/forum/221917/page26#comment_11233214
Я на коленках писал, вам, наверное, ещё и кол-во элементов нужно в Awrap передавать.Есть большой массив M1 содержащий данные. Хочется получать выборку данных некоторой длины во второй массив M2 меньшего размера.
Хочется сделать это максимально быстро, не используя копирование элементов.
Например было бы здорово просто совместить массивы в памяти с некоторым смещением D.
Можно ли сделать это средствами MQL5?
Видимо имеется в виду индексный массив, в который записываются требуемые номера элементов из M1. Тогда доступ к ним - через двойную индексацию M1[index[i]]. здесь index[] - целочисленный массив размера M2.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть большой массив M1 содержащий данные. Хочется получать выборку данных некоторой длины во второй массив M2 меньшего размера.
Хочется сделать это максимально быстро, не используя копирование элементов.
Например было бы здорово просто совместить массивы в памяти с некоторым смещением D.
Можно ли сделать это средствами MQL5?