C++ 将Lua表转换为C++;
我有一张这样的Lua表:C++ 将Lua表转换为C++;,c++,lua,C++,Lua,我有一张这样的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. 我把这个
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
实际上,你问什么还不太清楚。根据现有信息,我提出了一些想法:
std::array
。一般的缺点是,它们的大小是在编译时(源文件)中定义的,这可能是个坏主意。将条目存储为struct
,以便于字段命名std::vector
。和前一个一样,但它是运行时大小的。以相同的方式存储条目如果语言本身并不重要(你只到速度来C++),考虑使用LULA的SQLite绑定,它应该比你现在更容易,比你现在所做的BuurTist逼人表要快得多。
FWIW,它不是语言的快,而是你如何使用它。你也可以用C++做得相当慢。暴力通常是最糟糕的方法,所以不管你选择哪种语言,它都会很慢。也就是说,您确实需要添加更多关于如何访问此信息的详细信息,以便我们可以帮助您选择合适的容器。添加了对@NathanOliver的postAgreeing的回答,“并行数组”是一种适用于两种语言的技术。(在Lua中,它们将是带有序列的表。Lua的潜在优势是避免每“行”有一个表。)@Kosmonavt:“帮助我找到类似的容器(字典)”在代码中所做的任何事情都不构成“字典”;所有这些表,包括包含的表,都只是数组。