我想了解 MultiMap 是否是 STL 中以“日期”、“价格”等格式存储金融市场数据的最佳容器(例如 07/10/2013 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;
}
比较 < operator() 是我的问题吗?我如何实现 < operator() 对日期进行排序。
对于类型日期,是否有更优雅的解决方案,而不是使用 Class Date ?
如果这是金融市场数据的最佳容器?
非常感谢您的帮助