Visual c++ 使用MultiMap将金融市场数据存储在C++;

Visual c++ 使用MultiMap将金融市场数据存储在C++;,visual-c++,Visual C++,我想了解MultiMap是否是STL中存储金融市场数据的最佳容器,其格式如“日期”、“价格”(例如2013年10月7日1000)。 我试着做一个简单的例子,只是为了理解哪一个可能是实现,但当我试图打印它们时,我得到了一个可怕的错误 class Date { int day; int month; int year; int value_of_date; public: Date(int d, int m, int y): day(d),

我想了解MultiMap是否是STL中存储金融市场数据的最佳容器,其格式如“日期”、“价格”(例如2013年10月7日1000)。 我试着做一个简单的例子,只是为了理解哪一个可能是实现,但当我试图打印它们时,我得到了一个可怕的错误

  class  Date {
    int day;
    int month;
    int year;
    int value_of_date;

  public:
  Date(int d, int m, int y):
      day(d),month(m),year(y){
      value_of_date=year*10000 + month*100 + day;
      }

  friend ostream & operator<< (ostream &out, const Date &date);
  };
      ostream & operator<< (ostream &out, const Date &date) {
        out << "(" << date.day << ", " <<
        date.month << ", " <<
        date.year << ")";
        return out;
    }

  int main () {

     std::multimap<Date,int> first;

     first.insert(std::pair<Date,int>(Date(01,01,2000),1000));
     first.insert(std::pair<Date,int>(Date(01,02,2000),1010));
     first.insert(std::pair<Date,int>(Date(01,03,2000),1020));
     first.insert(std::pair<Date,int>(Date(01,04,2000),1030));

     for(auto i = first.cbegin(); i != first.cend(); i++) {
        std::cout << i->first << " " << i->second << std::endl;
     }
     return 0;
     }
上课日期{
国际日;
整月;
国际年;
日期的整数值;
公众:
日期(整数d、整数m、整数y):
日(d)、月(m)、年(y){
_日期的_值=年*10000+月*100+天;
}

朋友OsFrand和Prase> P>你必须在C++中这样做吗?这是一个可怕的语言来做金融事情。相信我,我去过那里。< /P> 如果试图将自定义类添加到容器中,则需要研究容器对元素的要求。例如,容器通常需要能够创建、删除、比较、排序并为其包含的内容赋值,因此需要实现比较运算符(是,运算符<()是它的一部分;只需实现一个操作符<(constyourclass&other)const,但要了解容器类)、赋值操作符、复制构造函数等

这就是为什么另一种语言会更容易的部分原因。例如,Python会自动为您派生这些运算符中的大多数,并且在过去几年中,它被SEC批准为金融市场数据的官方语言。Python、Java、Ruby、Perl或几乎任何其他主流语言将是更好的选择--如果您担心性能,请查看NumPy,并使用MySQL或mongodb等数据库后端


<>但是如果你相信(不管怎样)你需要使用C++的任何原因(可能是巨大的数据量和性能)至少你要自己使用Boost——特别是它的变体类型,并且考虑STXXL。如果你想要性能,那么,Go最近会是一个更明智的选择。真的,C++的唯一原因是如果你为一个疯狂的公司工作,迫使你……这是真的发生的。

谢谢你的建议,李。在一个Boost库中,考虑STXXL。我需要C++。