2013-02-09 73 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