与c#中的这个问题Pivot Table类似,我希望在c ++中找到一个数据透视表的实现.由于项目要求速度相当关键,性能关键部分项目的其余部分是用c ++编写的,因此非常需要用c ++实现或用c ++调用.有没有人知道类似于在Excel或开放式办公室中找到的数据透视表的实现?
我宁愿不必从头开始编写这样的东西,但如果我这样做,我该怎么办呢?需要注意哪些算法和数据结构?任何指向算法的链接都将非常感激.
我不知道现有的实现可以满足您的需求,因此,假设您要编写一个......
我建议使用SQLite来存储数据并使用 SQL 来计算聚合(注意:SQL 不会做中值,我建议在某个阶段进行抽象以允许这种行为),使用 SQLite 的好处是它非常灵活并且非常强大,而且它可以让您利用他们在存储和操作数据方面的辛勤工作。围绕这个概念包装您期望从数据透视表中获得的界面似乎是一个很好的开始方式,并且可以为您节省大量时间。
然后,您可以将其与 UI 组件的模型-视图-控制器架构相结合,我预计这会很有魅力。我是一个非常满意的 Qt 用户,因此在这方面我建议将 Qt 的 QTableView 与 QStandardItemModel(如果我可以摆脱它)或 QAbstractItemModel(如果我必须这样做)结合使用。不确定您是否需要这个建议,但如果您需要的话它就在那里:)。
希望这能为您提供一个起点,如有任何问题或补充,请随时提出。