2010-11-27 13 views
0

Mein Titel ist wahrscheinlich sehr vage. Ich habe eine strutureSpeichern eines Vektors in der Datenbank .. Verwenden Sie einen Zeiger?

struct { 
int a; 
int b; 
}itemInt 

und dann erkläre ich einen Vektor

std::vector<itemInt> ItemVec;

Und dann schiebe ich ein paar Elemente des Typs itemInt zu diesem Vektor. Ich muss diese Werte in einer Datenbank mit einem generischen Zeiger speichern und später abrufen.

long *lGenPtr. Ich muss diesen Zeiger verwenden.

Ich dachte, um zu deklarieren und Array der Struktur mit der Größe des Vektors (da ich nicht diese Informationen vor der Hand haben) und speichern Sie die Werte der einzelnen itemInt und dann auf diesen langen Zeiger zu werfen. Klingt nicht sehr effizient. Dies wird in einem großen Programm verwendet und muss so effizient wie möglich sein.

Jede Hilfe/Zeiger würde geschätzt werden. Ich habe wenig Zeit.

Dank

+1

Wollen Sie sagen, dass Sie Zeiger in einer Datenbank speichern? Auf der Festplatte? –

+0

Der Zeiger wird verwendet, um auf die Daten zu zeigen .. auf der Platte – Rustic

+1

@Rustic: .. Wie? – Ashe

Antwort

0

Sie werden wahrscheinlich die API der Datenbank zu prüfen, müssen Sie verwenden. Ich bin mir sicher, dass Sie für das Serialisieren von benutzerdefinierten Typen eine De-/Serialisierungsfunktion bereitstellen müssen, die dem DBMS mitteilt, wie Sie Ihre Daten lesen/schreiben. Sie können nicht einfach einen nicht-trivialen Typ wie std :: vector in a Zeiger müssen Sie eine Route über einen spezialisierten Serializer nehmen, dessen Format und Funktionalität von Ihrem DBMS angegeben werden muss.

Verwandte Themen