用C ++表示关系

时间:2010-03-10 14:40:01

标签: c++ data-structures

我试图用C ++代码表示关系(表):

  • 关系的列是整数。
  • 关系中的列数在运行时是固定的。
  • 不应允许重复(这是成本的主要来源)。
  • 我想要一张从名字到关系的地图。

有效实施的任何想法,这里的主要问题是在插入时检测重复,这可能是非常昂贵的。

2 个答案:

答案 0 :(得分:1)

将表格的每一行设为struct Row

使用std::setstd::unordered_set存储这些结构。冲突(查询)可以在(std::set)O(log n + d)时间内检测到(或std::unordered_set)摊销的O(d)时间,其中d是列数。

要有效地从名称映射到行,请创建boost::bimap<std::string, Row>

答案 1 :(得分:0)

KennyTM有一点意见。您可以使用SQLite。如链接中所述,您可以使用它来创建临时内存数据库。