我正在写一个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.
}
有更好的方法吗?
我应该使用更好的数据结构吗?