2013-02-09 4 views
0

Я использую класс QuantLib :: TimeSeries из библиотеки QuantLib. Моя проблема не связана с QuantLib и его сложностями, но, по-моему, в более общем использовании класса C++.C++: использование класса и конструктора

Описание QuantLib :: TimeSeries here. В моем коде (который сейчас ничего не возвращает), я предоставляю серию дат в std :: vector и серию цен, содержащихся в std :: vector. Объект QuantLib :: TimeSeries должен связывать даты и цены.

#include<ql\quantlib.hpp> 

int main() 
{ 
    std::vector<QuantLib::Date> dates; 
    std::vector<std::double> quotes; 

     dates.push_back(Date(12,Nov, 2012)); 
    dates.push_back(Date(13,Nov, 2012)); 
    dates.push_back(Date(14,Nov, 2012)); 

    quotes.push_back(40.05); 
    quotes.push_back(40.84); 
    quotes.push_back(41.03); 


    // Below is the line I am stuck at 
    QuantLib::TimeSeries<std::vector<QuantLib::Date>, std::vector<double>> series(dates.begin(), dates.end(), quotes.begin()); 

    // Now do something with all the stuff above 
    // ... ... 

    return 0; 
} 

Я был бы признателен, если бы кто-нибудь предоставил руководство, помог мне сделать эту работу.

спасибо.

+0

В чем вопрос? –

+0

Также, что «закрывает»? –

+0

Может ли ваша проблема быть в том, что 'closes.begin()' должен быть 'quotes.begin()' вместо этого? –

ответ

1

Я думаю, что ваша трудно линия должна быть только что-то вроде:

QuantLib::TimeSeries<double> series(dates.begin(), dates.end(), quotes.begin()); 

Из документации вы связаны:

template<class T, class Container = std::map<Date, T>> 
class QuantLib::TimeSeries< T, Container >; 

Первый параметр является типом вы храните в вашем случае double и второй, вероятно, один из контейнеров, используемых для реализации в качестве реализации, и он уже имеет реализацию по умолчанию, поэтому ничего не нужно.

+0

О! Кажется, это была проблема. Спасибо за подсказку. Это теперь компилируется. – tagoma