c++ - C++ 程序员关于 Scala 的问题(结构和 STL)

标签 c++ scala

我在将 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;

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

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

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

class Output
{
    var point: Double
    var solution: Array[Double] = new Array(6)
}

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

又是一件快事。我正在寻找与 STL::lower_bound 等价的东西。

找到正确的位置将元素插入已排序的容器中以维持顺序。

感谢您帮助 Scala 初学者

最佳答案

你为什么不想初始化它?为了效率?恐怕 JVM 不会让你摆脱基于最初存在的变量中的随机垃圾。所以既然你无论如何都要初始化它,为什么不指定你的“未初始化”值是什么?

class Output {
  var point = 0.0
  var solution = new Array[Double](6)
}

(您可以使用 Double.NaN 并检查 point.isNaN 如果您稍后需要查看该值是否已初始化。)

您可以使用 _ 作为默认初始化,但除非您在通用代码中使用它:

class Holder[T] {
  var held: T = _
}

那么您只是模糊了实际设置的值。 (或者你宣布“我真的不在乎这里发生了什么,它可以是任何东西”——这可能很有用。)

关于c++ - C++ 程序员关于 Scala 的问题(结构和 STL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4483589/

相关文章:

scala - 在哪里下载最新的Scala API文档?

Scala-redis 订阅 * 但收到零条消息

python - C++ 相当于 python 代码 : 'function(*list)'

c++ - 在 C++ 中,有没有办法让 Child 重用 GrandParent 中定义的纯虚函数的 Parent 类实现

scala - 如何在准引号中拼接各种类型的符号?

scala - 递归值 xxx 需要在 Scala 中输入

c++ - 防止在模板中使用某些类型

c# - 在c#中将结构转换为char指针

c++ - 你如何在 Arduino 上包含 clock_t?

scala - 在scala中交换两个变量