Grundlegende Hilfe: Große Datentabelle & QRegExp Perfomance

con-f-use

Erfahrenes Mitglied
[c++ / qt4] Grundlegende Hilfe: Große Datentabelle & QRegExp Perfomance

Hallo,

brauche etwas grundlegende Hilfe. Lese und verarbeite größere Datenmengen aus einem Textfile. Im Prinzip handelt es sich um viele Float-Werte von denen etliche durch bestimmte Strings gekennzeicht sind. Dazu zwei Fragen:

1.) Was ist der beste Datentyp in Qt bzw. C++ für eine zweidimensionale Datentabelle? Die Daten sollen schell umsortiert werden können und man muss mit ihnen rechnen können.

2.) Zum Auslesen der speziellen floats würde ich spontan QRegExps verwenden. Wie sieht es da mit der Performance aus?

Schonmal danke für die Hilfe!
Gruß von con-f-use
 
Zuletzt bearbeitet:
Hi

zu 1:
Wenn es Floats sind würd ich float als Datentyp nehmen.

Wenn es Floats mit Strings sind würd ich eine eigene Struktur/Klasse nehmen und die passenden Operatoren (Rechen- und Vergleichsoperatoren überladen plus Setter/Getter) und dann das Array vom Typ deiner Struktur/Klasse.

zu 2: kann ich nichts sagen

mfg Higret
 
Wie gesagt es ist eine Float-Datentabelle. Würde im Prinzip ein zweidimensionales Array nehmen, aber vielleicht gibt's ja was besseres in Qt.
 
Hallo,

wie schaut denn dein Format eigtl. aus? Hast du dir schonmal überlegt ob Regular Expressions überhaupt nötig sind?

Gruß,
RedWing
 
Sind nötig. Wie gesagt: Mehre floats in einer Zeile, getrennt durch eine beliebite anzahl Whitespaces. Spezielle Floats sind mit vorangestellten Strings markiert.

Kannst du dir in etwa so vorstellen:
Code:
1 2 3 as4 5
6             7  8             9 er10
11a 12 13   14        15

usw.
Ums mal vereinfacht hinzuschreiben. Ich denke RegExp werden nötig sein.

Also welcher Datentyp ist empfehlenswert? Ich weiß vorher auch nicht, wie viele floats es genau sind, die ich verarbeiten muss.
 
Hi,
Sind nötig. Wie gesagt: Mehre floats in einer Zeile, getrennt durch eine beliebite anzahl Whitespaces. Spezielle Floats sind mit vorangestellten Strings markiert.

Kannst du dir in etwa so vorstellen:
Code:
1 2 3 as4 5
6             7  8             9 er10
11a 12 13   14        15

usw.
Ums mal vereinfacht hinzuschreiben. Ich denke RegExp werden nötig sein.
Alles klar.

Also welcher Datentyp ist empfehlenswert? Ich weiß vorher auch nicht, wie viele floats es genau sind, die ich verarbeiten muss.

Ich denke da is ein std::vector eine gute Wahl. Wahlfreier Zugriff wie bei Arrays auch und meines Wissens arbeiten so ziemlich alle Algorithmen der STL auch auf einem std::vector.
Siehe http://www.sgi.com/tech/stl/Vector.html
oder wenn du mit Qt arbeitest einen QVector:
http://doc.trolltech.com/4.2/qvector.html

Gruß,
RedWing
 
Zurück