gpt4 book ai didi

c++ - C++ 中的表实现

转载 作者:太空狗 更新时间:2023-10-29 19:54:52 26 4
gpt4 key购买 nike

在我们的C++项目中我有一些组合数据结构的需求,我认为它应该与SQL表非常相似。我有一组具有不同数据类型的相同大小的数组 (std::vectors)。例如:

time(int), X(double), Y(double), valid(boolean), number_of_measurements(int)

让我们假设它们就像一张表,我需要按行访问它们。例如,我需要一种将一行插入表的任意位置的功能,这将导致一个元素上的所有行向下移动,杀死行。我可能需要按时间对表格进行排序,将其与其他相同类型的表格合并。

C++世界里有这样的东西吗?

基本上我需要一个通用的解决方案,它支持任意数量的列和行。当然,性能是有意义的,所以我更喜欢在内存中而不是在数据库中这样做。

更新

我看到很多人提议定义一个简单的行结构并将其存储在一个集合中。不,就我需要经常使用列进行操作而言,这不会飞。例如。我可能需要乘以整列或从中计算平均值。我什至可以对它进行插值或在特定列上应用许多不同的算法。

而且我想避免这样一种情况,即我将列提取到 vector 中,对其应用一些算法,然后将其放回结构中。看起来很丑,不是吗?

我需要或多或少与此类似:

// Initializing: (three columns: time, X, Y)
table t("time", std::vector<int>(), "X", std::vector<double>(), "Y", std::vector<double>());

// inserting a row
t.insert_row( 1, 20.0f, 20.0f );

// accessing values:
t["time"][10] = 20;

// getting a column:
std::vector<int> time = t["time"];

// sorting
t.sort_by( "time" );

有什么想法吗?

最佳答案

如果你需要类似 SQL 的东西,你可以尝试 SQLite .它是一个库,可以为内存中的 SQL 数据库提供 SELECT 功能、排序、合并以及几乎所有您期望从 SQL 数据库获得的基本操作。它还支持文件支持的数据库。这应该可以节省您实现自己的解决方案的时间。

关于c++ - C++ 中的表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276746/

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