gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 17:39:45 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com