我对C和C ++编程有些新意,我已经在R中实现了这一点,我现在正试图用C ++编写它。
我使用std::vector<double>
和std::vector<std::vector<double>>
并按值传递,因为它只需要一次传递一行来填充std::vector<std::vector<double>> u(t.size(),vector<double>(n))
,其大小基于h
,{ {1}}和总运行时间。
我遇到的问题是当波穿过轴时输出数据似乎出错了。我无法从逻辑上弄清楚这有什么问题,但我可能错过了一些东西,我认为我更有可能误用k
或者有一些我不认识的数据类型冲突。
也许别人可以看到我不能做的事,这是我的代码:
std::vector
我的R脚本功能齐全,我使用的代码大多相同(除非索引已更改)。主要的区别在于,矢量和2D数组(如你所知)在C ++中稍微复杂一些。
在我完成此操作后,我将尝试使用OpenMP进行操作,但那可能是另一天的另一个问题。
答案 0 :(得分:0)
所以,事实证明这个bug是..............我在最初的电话中向后发送了h和k给求解器,当我打印出大小的时候,我发现了这个时间向量,它是1200而不是2400.结束保持原始索引,因为这不是问题。如上所述,我添加了一些评论:
" LINE " 42 ":"