Я создаю DLL, написанную на C ++. Основной сценарий написан на Lua.
Внутри dll есть функция:
static int OnQuote(lua_State* L) {
//receives parameter called "last_price" and try to count average price
return 0;
}
Получает «last_price» за 5 акций, торгующих на бирже. Я хочу посчитать среднее "last_price" на 100 последних сделок, которые приходят в эту функцию.
Каждая бумага рассчитывает свою среднюю цену отдельно друг от друга.
Примеры работ: "SBER", "GAZP", "ROSN", "GMKN", "MGNT"
Каков наилучший способ сделать это?
Какой контейнер следует использовать для хранения данных? Может быть карта с векторами?
Где объявить глобальную карту?
Я создал карту внутри DllMain, но она не видна внутри функции OnQuote:
map <string, vector <int> > avr;
avr.insert(pair<string, vector<int> >("SBER", vector<int>{}));
avr.insert(pair<string, vector<int> >("GAZP", vector<int>{}));
avr.insert(pair<string, vector<int> >("GMKN", vector<int>{}));
avr.insert(pair<string, vector<int> >("MGNT", vector<int>{}));
avr.insert(pair<string, vector<int> >("ROSN", vector<int>{}));
Я стараюсь хранить промежуточные данные внутри векторов.
Помогите мне пожалуйста со стратегическим взглядом на эту задачу.