Я пытаюсь написать код для расчета дивидендной доходности.Мне нужно ежедневно рассчитывать дивидендную доходность (Dividend / Stock_price).Дивиденды постоянны.В конце концов мне придется привязать цену акций к динамическому каналу, но в то же время цены на акции могут быть на их собственной карте.Я вставил суммы дивидендов для каждой акции в конструктор класса, потому что он менее трудоемок в вычислительном отношении, чем использование условных операторов в членах (т. Е. Если stock = Apple, тогда дивиденд равен X).Я получаю следующее сообщение об ошибке, начинающееся с «[» перед «AAPL»:
**error C2679: binary '[' : no operator found which takes a right-hand operand of type 'const
char [5]' (or there is no acceptable conversion) c:\boost/unordered/unordered_map.hpp(415):
could be 'double &boost::unordered_map<K,T>::operator [](const FinModels::Instrument *const &)'
with
[
K=const FinModels::Instrument *,
T=double
]
while trying to match the argument list '(DividendMap, const char [5])'**
Кто-нибудь может мне помочь, основываясь на моем кратком коде ниже и описании?Является ли const Symbol * неправильным типом для ключа?
Кроме того, если публиковать фиксированные значения карты в конструкторе неправильно, пожалуйста, дайте мне знать, что лучше.*
public:
typedef boost::unordered_map<const Symbol*, double> Dividend_Map;
typedef Dividend_Map::iterator Dividend_MapIterator;
private:
Dividend_Map p_dividend_map;
.CPP File
p_dividend_map["AAPL"] = 0.01;
p_dividend_map["BAC"] = 0.01;
p_dividend_map["C"] = 0.01;