Fragen zu Scala von einem C ++ Programmierer (structs und stl)

8

Ich habe Probleme beim Übersetzen von C ++ Datenstrukturen nach Scala. Scala ist wirklich anders als C ++, aber ich mag eine Menge davon. Ich habe das folgende Codefragment in C ++:

%Vor%

Ich fülle jetzt die Liste in einer while-Schleife mit Daten

%Vor%

Ich habe versucht, eine einfache Klasse in Scala zu erstellen, um die Daten zu speichern.

%Vor%

Aber das funktioniert nicht, da der Punkt nicht initialisiert ist. Gibt es einen Weg dahin? Ich möchte nur die Variable definieren, aber nicht initialisieren.

Noch eine schnelle Sache. Ich suche nach einem Äquivalent zu stl :: lower_bound.

Findet die richtige Position, um ein Element in einen sortierten Container einzufügen, um die Reihenfolge beizubehalten.

Danke, dass du einem Scala-Anfänger geholfen hast

    
Radfahrer 19.12.2010, 15:19
quelle

3 Antworten

4

Warum willst du es nicht initialisieren? Für Effizienz? Ich befürchte, dass die JVM dich nicht davon abhält, zufälligen Müll in deinen Variablen zu haben, basierend auf dem, was ursprünglich dort war. Da Sie es sowieso initialisieren müssen, warum geben Sie nicht an, was Ihr "nicht initialisierter" Wert ist?

%Vor%

(Sie könnten Double.NaN verwenden und auf point.isNaN prüfen, wenn Sie später sehen müssen, ob der Wert initialisiert wurde oder nicht.)

Sie könnten _ als Standardinitialisierung verwenden, außer Sie verwenden es in generischem Code:

%Vor%

Dann verdunkeln Sie nur, worauf der Wert wirklich eingestellt wird. (Oder Sie kündigen an: "Es ist mir wirklich egal, was hier läuft, es könnte alles Mögliche sein" - was nützlich sein könnte.)

    
Rex Kerr 19.12.2010 16:32
quelle
3

Ich habe gerade die Antwort auf die Intition gefunden:

%Vor%

Puh Scala hat eine Menge an syntx, an die man sich gewöhnen muss: -)

Jeder hat eine Lösung für das untere_bound Äquivalent?

    
Radfahrer 19.12.2010 15:42
quelle
3

Es ist schwer effektiv zu übersetzen, da Sie eine Menge Unbekannter hinter Pseudo-Code versteckt haben, aber ich würde etwas in dieser Richtung befürworten:

%Vor%

Wenn Sie Ihren Beispielcode etwas ausführlicher darstellen können, kann ich Ihnen eine bessere Übersetzung geben.

    
Kevin Wright 19.12.2010 16:07
quelle

Tags und Links