ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1371
1371
EMPFEHLEN
-
17.03.10 13:09 #1
- Registriert seit
- Apr 2005
- Beiträge
- 191
Hallo allerseits,
ich habe wieder mal mit riesigen Datenmengen zu tun. Dieses Mal geht es um vector<T>, der durchaus so groß werden kann, dass eine bad_alloc exception ausgeworfen wird. Algorithmisch gesehen komme ich um so einen großen Vektor aber nicht herum.
Da man dem vector ja einen Allocator vorschreiben kann, kam ich auf die Idee, ob man den Vektorinhalt nicht in einer Datei verwalten kann.
Ich bräuchte dann den Algorithmus gar nicht groß umschreiben, sondern nur einen selbstentwickelten Allokator mitgeben.
Bevor ich weitermache, wollte ich fragen, ob das überhaupt denkbar ist?Grüße OS
-
Du möchtest also eine Datei aufbauen, die Datensätze gleicher Struktur hintereinanderschreibt, und die du später bei Bedarf teilweise wieder einlesen und verarbeiten kannst. Mit anderen Worten: du hättest gerne eine (index-)sequentielle Datei. Du hast oder findest bestimmt eine Bibliothek mit Datenbankklassen, die das unterstützt (Stichwort ISAM).
Vielen Dank für die Nutzung des Bewerten- und Danke-Buttons
Wenn man sieht, dass man einen anderen glücklich gemacht hat, ist die Welt um zwei glückliche Menschen reicher.
-
17.03.10 15:38 #3
- Registriert seit
- Apr 2005
- Beiträge
- 191
Ja, die Datei enthält ausschließlich Blöcke gleicher Größe.
Damit ich nicht den ganzen Code umschreiben muss, wäre es super, wenn ich vector behalten könnte und wahlweise auf "memory" oder "file" basiere.
Ist für mich auch allgemein sehr interessant.
Code cpp:1 2 3 4 5 6 7
#include <vector> // Standard std::vector< Datensatz > vec1; // mit eigenem Allocator, der erst noch entwickelt werden muss. std::vector< Datensatz, FileAllocator<Datensatz> > vec2;
Ich bin fast überzeugt, dass das irgendwie geht. Ich habe im Internet schon einen Artikel gefunden ("writing your own STL allocator").
Wenn ich damit klar komme, stelle ich den Code mal hier ein.Grüße OS
-
Ich glaube trotzdem, dass die Einbeziehung von ISAM- bzw. Datenbankklassen sich lohnen würde. Die abzufragenden Daten könntest du immer noch in einen vector überführen, Änderungen kannst du mit UPDATE-Statements direkt in der Datei machen, die benötigten Sätze können komfortabel mit einem SELECT-Statement herausgesucht werden etc. Möglicherweise vereinfacht das auch deine Verarbeitungsroutinen.
Vielen Dank für die Nutzung des Bewerten- und Danke-Buttons
Wenn man sieht, dass man einen anderen glücklich gemacht hat, ist die Welt um zwei glückliche Menschen reicher.
Ähnliche Themen
-
Schriftart in PSD-Datei speicher?
Von angel_inside im Forum PhotoshopAntworten: 5Letzter Beitrag: 13.09.07, 16:07 -
Vector in CSV-Datei speichern
Von Djunix im Forum JavaAntworten: 2Letzter Beitrag: 14.07.06, 19:35 -
TWAIN holt immer wieder das Bild aus dem Speicher, statt von Kamera
Von Reticent im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 02.12.05, 11:30 -
[C++] Vector in Datei speichern / aus Datei lesen
Von Fabian im Forum C/C++Antworten: 3Letzter Beitrag: 28.06.05, 08:59 -
wie speicher ich in .pat datei
Von suain im Forum PhotoshopAntworten: 2Letzter Beitrag: 23.02.04, 00:26





Zitieren
Login






