我正在尝试在 C++ 中为表或关系(具有唯一行的无序表)构建数据结构。我以前用过很多次,但从来没有自己建造过。
所以表应该是任意类型的任意数量的列的集合。我可以使用std::vector<some_type>
或一些派生类来表示一列。
我的问题是我可以使用什么语言结构来定义总体表数据结构?我意识到我可以以某种方式包装std::vector<some_type>
到某个类中,该类本身可以派生出某个基类,然后将表表示为指向基类的指针向量,但我很想知道是否有替代方法来进行表示,也许使用一些模板签名?在使用表格的列时,我宁愿不要投太多。
给一些背景。我很乐意使用我所描述的那种现有数据结构。我已经看到这种结构在软件行业中非常积极地与关系代数算法一起使用,但我还没有在 boost 中找到这种结构。我对在其上实现基本的关系运算符特别感兴趣,例如联接、产品等...
编辑:更多细节。我不想创建具有基于行的内存连续性的数据结构。连续性是基于列的,这一点很重要,因此拥有一组向量似乎是正确的做法。