将Lua表转换为C ++

问题描述 投票:0回答:1

我有一个像这样的Lua表:

t_big={
{open,high,low,close, sd, far_sd},
{open,high,low,close, sd, far_sd},
{open,high,low,close, sd, far_sd},
{open,high,low,close, sd, far_sd},
}--many lines like these. Open, high, low, close, sd, far_sd are different numbers.

我将此代码翻译为C ++。帮我找到类似的容器(字典)。它必须支持非常高速,因为我将使用强力学习这些数据。 Lua脚本的工作时间为1周。我学习C ++来更快地完成这项工作。 Lua蛮力圈看起来像:

for sd=start_sd,end_sd,1 do 
 for far_sd=start_far_sd,end_far_sd,0.25 do 
 ..... work with container, check sd and far_sd parameters. Seeking best result.
 end 
end
c++ lua
1个回答
1
投票

实际上并不是很清楚你在问什么。根据现有信息,我提出了一些想法:

  1. 经典阵列或std::array。一般的意思是它们的大小是在编译时定义的(源文件),这可能总体上是个坏主意。将您的条目存储为struct,以便于字段命名。
  2. std::vector。和前一个一样,但它的运行时大小。以相同方式存储条目。
  3. 从你的“蛮力”例子来看,很明显你做错了。看看任何类型的SQL数据库:SQLite可能是目前最好的选择。这将需要一些学习,但总体上应该很容易。如果你的表是硬编码的(我很确定它不是,但谁知道),你可以找到lua的SQLite绑定并轻松导出它。如果不是,你总是可以创建超快的内存数据库(不要忘记索引表!)。为了使事情变得更容易,你可能想要为SQLite使用一些包装器,比如https://github.com/SqliteModernCpp/sqlite_modern_cpp

如果语言本身并不重要(你只是为了速度而来到C ++),考虑对lua使用SQLite绑定,对你来说它应该更容易,并且比你现在更强大地执行表格。

© www.soinside.com 2019 - 2024. All rights reserved.