2016-04-22 7 views
0

Ich habe in den letzten Tagen versucht, eine Lösung für ein Speicher-/Zugriffsproblem zu finden.Die effizienteste Möglichkeit, Daten mit mehreren Attributen zu speichern und darauf zuzugreifen

Ich habe derzeit 300 Unikate mit jeweils 10 Attributen (alle Attribute sind derzeit als Strings gesetzt, aber einige der Attribute sind numerisch). Ich versuche programmgesteuert zu speichern und in der Lage zu sein, effizient auf Attribute zuzugreifen, die auf der Element-ID basieren. Ich habe versucht Speichern sie in String-Arrays, Vektoren, Karten und Multimaps ohne Erfolg.

Ziel: in der Lage, schnell auf einen Artikel und eines seiner Attribute schnell und effizient durch eindeutige Kennung zugreifen.

Die nächstgelegene Ich habe erfolgreich bekommen konnte zu sein, ist:

string item1[] = {"attrib1","attrib2","attrib3","attrib4","attrib5","attrib6","attrib7","attrib8","attrib9","attrib10"}; 

Ich war dann in der Lage On-Demand ein Element zuzugreifen, indem item1[0]; Aufruf aber das ist sehr ineffizient (vor allem, wenn einer Schleife versucht, durch 300 Teile) und es war sehr schwer mit ihm zu arbeiten.

Gibt es eine bessere Möglichkeit, dies zu erreichen?

+0

'unordered_map'? –

+1

Wie ist der Zugriff auf ein Array nach Index "SEHR ineffizient"? Effizient in welchem ​​Sinne? Oh, meinst du eigentlich, dass du darüber nachgedacht hast, 300 verschiedene String-Array-Variablen namens "item1" bis "item300" zu schreiben? –

+0

Nun, ich hatte bereits alle 300 String-Array-Variablen geschrieben (Gott sei Dank für Notepad ++ & Regex). Ich nehme an, ich hätte es so formulieren sollen, wie wäre es besser, die Arrays unverändert zu belassen, oder wäre es einfacher, eine Klasse zu erstellen, die irgendwie mit Funktionsaufrufen umgehen würde? – ljamison

Antwort

1

Wenn ich Ihre Frage richtig verstehe, klingt es so, als müssten Sie eine Klasse für die Attribute haben, die Sie in eine Karte mit der Element-ID als Schlüssel eingeben würden.

+0

"Ich habe versucht, sie ohne Erfolg in String-Arrays, Vektoren, Karten und Multimaps zu speichern." –

+2

Eine so unglaublich breite Aussage lässt mich glauben, dass es dann falsch gemacht wird. Wenn er wichtige Details seines Problems nicht auslässt, scheint das ziemlich einfach zu sein. – fetherolfjd

+0

Ich gebe zu, dass ich das Gefühl habe, ich mache es falsch, da ich mir nicht sicher bin, wie ich genau vorgehen sollte, wie es getan werden sollte, das es ohne zu viel Modifikation skalierbar macht. Ich habe keine funktionalen Informationen weggelassen. – ljamison

Verwandte Themen