gpt4 book ai didi

c++ - 在 C/C++ 中实现未知表模式的数据结构?

转载 作者:搜寻专家 更新时间:2023-10-31 01:11:47 27 4
gpt4 key购买 nike

我们的任务是从文件中读取有关表架构的信息,用 c/c++ 实现该表,然后在其上成功运行一些“选择”查询。表模式文件可能有这样的内容,

    Tablename- Student
"ID","int(11)","NO","PRIMARY","0","".

现在,我的问题是什么数据结构适合这项任务。问题是我不知道一个表可能有多少列,也不知道这些列的名称是什么,也不知道它们的数据类型。例如,一个表可能只有一个 int 类型的列,另一个表可能有 15 个不同数据类型的列。事实上,我什至不知道模式文件可能包含多少个表的描述。

我想到的一种方法是有一组数量,比如 20 个 vector (假设表中列的上限为 20),将这些 vector 命名为 1stvector、2ndvector 等等,映射的名称 vector 的列,然后相应地使用它们。但它的代码似乎会与所有这些 if/else 语句或 switch case 语句(用于映射)一团糟。

在谷歌搜索/堆栈溢出时,我了解到你不能在运行时描述一个类,否则问题可能更容易解决。

感谢任何帮助。谢谢。

最佳答案

作为 C++ 数据结构,您可以尝试 std::vector< std::vector<boost::any> > . vector是标准库的一部分,允许动态调整元素数量。 vector 的 vector 意味着任意数量的行和任意数量的列。 Boost.Any不是标准库的一部分,但广泛使用并允许存储任意类型。

我不知道有什么好的 C++ 库可以对该数据结构执行 SQL 查询。您可能需要自己编写。例如。 SQL 命令 selectwhere将对应于 STL 算法 std::find_if使用适当的谓词作为函数对象传递。

关于c++ - 在 C/C++ 中实现未知表模式的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com