0

我正在编写一个 SQL 解释器。
我选择将我的元组存储vector为 s 的数组(实际上)map
表的每个元组都是一个map. 键是属性名称,值是该属性的值。
我必须支持诸如project.

所以我必须实现这样的方法:

Table Table::project(const vector<string> &attributes) {
  // return a Table with just the attributes passed
}

在 Table 类中,它接受要投影的属性并返回一个仅包含这些属性的新表。

我能想到的唯一方法是:

Table Table::project(const vector<string> &attributes) {
  // iterate through each tuple of the current table. For each tuple,
  // iterate through all attributes passed, find the value of each one in
  // the current tuple and add it to the new tuple. Insert the new tuple into
  // the new table. Return the table.
}

有没有更好的方法来做到这一点?
我应该使用更好的数据结构吗?

4

0 回答 0