小编Rad*_*rer的帖子

来自C++程序员的Scala问题(结构和stl)

我在将C++数据结构转换为Scala时遇到问题.Scala与C++完全不同,但我喜欢它.我在C++中有以下代码片段:

struct Output
{
    double point;
    double solution[6];
};

struct Coeff
{
    double rcont1[6];
    double rcont2[6];
    double rcont3[6];
    double rcont4[6];
    double rcont5[6];
    double rcont6[6];
};
std::list<Output> output;
std::list<Coeff> coeff;
Run Code Online (Sandbox Code Playgroud)

我现在用数据填充while循环列表

while(n<nmax) {
    if step successfull
         Output out;
         out.point = some values;
         out.solution[0] = some value;
         output.push_back(out);
}
Run Code Online (Sandbox Code Playgroud)

我尝试在Scala中创建一个简单的类来保存数据.

class Output
{
    var point: Double
    var solution: Array[Double] = new Array(6)
}
Run Code Online (Sandbox Code Playgroud)

但这并不起作用,因为点没有初始化.有没有解决的办法?我只想定义变量但不要初始化它.

另一件快事.我正在寻找与stl :: lower_bound等效的东西.

找到在排序容器中插入元素以维护订单的正确位置.

感谢您帮助Scala初学者

c++ scala

8
推荐指数
1
解决办法
2808
查看次数

使用向量的Scala函数式编程

我是Scala编程的新手,在函数式编程和不可变集合方面遇到了一些困难.我试图将我的数字代码从C++移植到Scala.

很多时候我有代码在小向量上运行,如下所示:

double ytmp[6];

for (int i=0; i<6; i++) {
    ytmp[i] = y[i] + h*(a41*dydx[i] + a42*k2[i] + a43*k3[i]);
}
Run Code Online (Sandbox Code Playgroud)

如何在高效的Scala中编写类似的东西?我考虑过在开始时使用简单列表,但是对于不可变类型有问题,所以我不能只创建一个空列表ytmp并稍后修改它,就像我习惯于使用C++一样.谢谢您的帮助

scala

1
推荐指数
1
解决办法
1593
查看次数

标签 统计

scala ×2

c++ ×1