Irtron, в последнем сообщении на предыдущей страничке я предложил общее решение для списка. Только, наверно, лучше сделать не двумерный массив, а два одномерных, связанных друг с другом (двумерный не получится, если сами данные не int). В одном будут сами элементы, во втором - их индексы. Конечно, все элементы в списке будут одного типа. Вот теперь еще и деревья бы научиться делать...
P.S. Вообще это все, конечно, извращение, если учесть, что обещают в MQL5, - классы, пользовательские типы данных и т.п. Но не уверен, что весь народ тут же перейдет на пятый, как только он появится.
Mathemat: Irtron, в последнем сообщении на предыдущей страничке я предложил
общее решение для списка. Только, наверно, лучше сделать не двумерный
массив, а два одномерных, связанных друг с другом (двумерный
не получится, если сами данные не int). В одном будут сами элементы,
во втором - их индексы. Конечно, все элементы в списке будут одного
типа.
Как раз такую организацию списка я и имел в виду в первом варианте:
Irtron:
Со списками универсального решения нет.
Если, скажем, доступ к элементам списка происходит в основном
последовательно (т.е. при помощи итератора next()), то можно поизвращаться
с дополнительным списком индексов основного списка.
В случае произвольного доступа по индексу проще делать в лоб,
сдвигая верх массива в ту или иную сторону. Можно, конечно, и
это соптимизировать раз эдак в... Да, вообще, во сколько надо,
во столько и можно.
Проблема с промежуточным индексированием вылезет, когда нужно будет рандомно выдергивать элементы из очень длинного и перемешанного списка. Придется бежать по всей цепочке до нужного. Или пристраивать хеширование.
Кстати, вставка/удаление в произвольное место и есть рандомный
доступ. Тут все определяется тем, как список итерируется.
Таки опять " под конкретную задачу и реализация соответствующая.
"
Имелось ввиду что то типа стандартной библиотеки как в Visual C++ в которой реализована продвинутая работа с массивами (стеками, списками) что то типа такого
Стандартной - нету точно. Если бы были стандартные - не извращались бы тут по-французски. Из сложных типов данных есть только массивы. Хочешь реализовать стек или список - пиши самостоятельно. Впрочем, может быть, что-то в Code Base есть, но сомневаюсь я в этом.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
все просто, используете второе измерение, например так:
Ну да, а чтоб вставить между е1 и е2 надо заряжать третье измерение, потом четвертое, и т.д. Ну а потом кончится память. :)
Я ж говорил, универсального решения нет. А под конкретную задачу и реализация соответствующая.
P.S. Вообще это все, конечно, извращение, если учесть, что обещают в MQL5, - классы, пользовательские типы данных и т.п. Но не уверен, что весь народ тут же перейдет на пятый, как только он появится.
все просто, используете второе измерение, например так:
Ну да, а чтоб вставить между е1 и е2 надо заряжать третье измерение, потом четвертое, и т.д. Ну а потом кончится память. :)
Я ж говорил, универсального решения нет. А под конкретную задачу и реализация соответствующая.
А никто и не предлагал использование измерений в качестве универсального решения, это был ответ на частную задачу.
что же касается списка, то я согласен с высказыванием - " под конкретную задачу и реализация соответствующая."
Irtron, в последнем сообщении на предыдущей страничке я предложил общее решение для списка. Только, наверно, лучше сделать не двумерный массив, а два одномерных, связанных друг с другом (двумерный не получится, если сами данные не int). В одном будут сами элементы, во втором - их индексы. Конечно, все элементы в списке будут одного типа.
Со списками универсального решения нет.
Если, скажем, доступ к элементам списка происходит в основном последовательно (т.е. при помощи итератора next()), то можно поизвращаться с дополнительным списком индексов основного списка.
В случае произвольного доступа по индексу проще делать в лоб, сдвигая верх массива в ту или иную сторону. Можно, конечно, и это соптимизировать раз эдак в... Да, вообще, во сколько надо, во столько и можно.
Кстати, вставка/удаление в произвольное место и есть рандомный доступ. Тут все определяется тем, как список итерируется.
Таки опять " под конкретную задачу и реализация соответствующая. "
что то типа такого
Стандартной - нету точно. Если бы были стандартные - не извращались бы тут по-французски. Из сложных типов данных есть только массивы. Хочешь реализовать стек или список - пиши самостоятельно. Впрочем, может быть, что-то в Code Base есть, но сомневаюсь я в этом.