Тихая Гавань
Тихая Гавань личный блог
03 июля 2014, 18:10

программисты трейдеры АУ

парни очень нужна консультация программиста на С++

суть: не могу разобраться с векторами (((
пишу ДЛЛ пока для МТ4
дан двумерный ДИНАМИЧЕСКИЙ массив баров.
необходимо этот массив передать в ДЛЛ.

в С++ как таковое отсутствует понятие ДИНАМИЧЕСКОГО массива ((( поэтому через вектора…
но информация слишком скудная в нете…
не могу понять как вектор двумерного массива инициализировать в классе, как в отдельной функции добавлять в него новые элементы, и как из другой функции читать..

если есть тут прогеры — откликнитесь плиз!

прошу плюсануть 
18 Комментариев
  • velikan
    03 июля 2014, 18:17
    всё правильно, через вектора надо делать
    в конструкторе инициализируй приватный вектор:
    www.cprogramming.com/tutorial/constructor_destructor_ordering.html — это про конструкторы
    ну и соответственно, сделай public-функции для управления этим вектором
      • velikan
        03 июля 2014, 18:21
        Crazy Trading, инициализировать надо в конструкторе, а для добавления/удаления элементов — в классе сделать функции-обёртки, в которые будешь передавать элемент для добавления или индекс для удаления
  • Sergey F
    03 июля 2014, 18:23
    вектор врядли подойдёт.
    double[,] candles = new double[10,30000]; не подойдёт?
  • xTestero
    03 июля 2014, 22:36
    Что есть «вектор» в с++ — не знаю:)
    есть след варианты решения:
    1. статические массивы 4 байта(дабл) * 4(хай, лоу, опен, клозе) * 100000 (баров) * 100(инстурментов) = 160 000 000 = 160 мбайт вроде? если я не ошибся делай так — самый быстрый и простой вариант
    2. динамические массивы — хранится в памяти куском, при каждом изменении размера выделяет кусок целиком. Забудь…
    3. списки… вариантов реализации масса, в делфи сделано более менее удобно…
    • SergeyJu
      04 июля 2014, 11:19
      xTestero, согласен, статическое распределение памяти — первый выбор, если хочешь, чтобы было и быстро и просто!
      • xTestero
        05 июля 2014, 13:43
        Crazy Trading, ты по другому проблему не решишь — либо упрешься в физический потолок либо в быстродействие. Если реально есть необходимость в хранение такой тучи данных (а скорее всего ее нет:) то варианты:
        1. статика со сдвигами памяти (не нужные данные убираем на их месть двигаем необходимые, в конец дописываем новые) — вряд ли ты будешь заглядывать на 5и минутках в прошлый год например
        2. списки, но тут конечно можешь и 16гигов в комп воткнуть но потолок все рано будет
        3. хранить все в базе данных быстрой
        ну есть еще наколхозить решений, в зависимости от твоих потребностей.
        если хочешь динамически выделять массивы — попробуй метров на сто массив выделить и перекроить — увидишь сколько это по времени занимает…

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн