Поиск элементов внутри вектора карты по ключу (C++)
Я пытался отладить кодирование (C++ / Quantlib), используя вектор карт. По сути, я хотел бы найти элемент внутри карты, который, в свою очередь, находится внутри вектора. Но поймал ошибку.
вход:
vector<map <Date, Real> > simulatedPrices_; // a vector containing 1000 maps
vector<Date> cds_maturities_;
приватная переменная:
map <Date, Real> pricePathJ; // for reading each map in the vector
Real w_t_; //
кодирование:
for (int j = 0; j < no_of_paths; j++) {
pricePathJ = simulatedPrices_[j];
for (int i = 0; i <= iTenor_; i++) { //iTenor is the number of element inside vector cds_maturities_
startDate = ......;
endDate = ......;
w_t_ = pricePathJ.find(cds_maturities_[i]); // error in pricePathJ saying there is no conversion function from iterator ... the pair<Date, Real> to Real.
......
Я допустил какие-либо ошибки или есть какой-либо тип указателя, который я пропустил в приведенной выше кодировке? Благодарю.
Замечания: переменная типа Real симметрична типу Double
1 ответ
Вы можете использовать простой цикл и использовать карту find()
Функция для этого. Вернется первый Real
это соответствует
Real FindReal(const std::vector<std::map<Date, Real>> & data, const Date & findDate)
{
for (auto&& e : data)
{
auto it = e.find(findDate);
if (it != e.end())
return it->second;
}
return some_value_if_not_found;
}