2013-02-09 108 views
0

我正在使用QuantLib庫中的QuantLib :: TimeSeries類。我的問題與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

這裏有什麼問題? – 2013-02-09 20:56:51

+0

另外,什麼是「關閉」? – 2013-02-09 20:59:05

+0

你的問題可能是'closes.begin()'應該是'quotes.begin()'而不是? – 2013-02-09 20:59:54

回答

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 2013-02-09 21:15:43