[C++] Unieke groepsnaam voor bijelkaar horende variabelen.

Pagina: 1
Acties:
  • 146 views sinds 30-01-2008
  • Reageer

  • IJnte
  • Registratie: Juni 2003
  • Laatst online: 19-05 12:01
Het volgende probleem is ontstaan:

Ik wil een groep variabelen onder 1 groepsnaam zetten een voorbeeld hiervan is classes. Ik wil de naam laten bepalen door gegevens die van het programma afkomen als die aan het scannen is.

Situatieschets:

Er is gescand en de waarde 01_01 komt er vanaf nu wil ik de groep als volgt noemen "Device01_01".

Wat is de handigste manier om dit te doen. Heb al naar de optie gekeken die in tutorials staan over classes, wordt hier alleen niet veel wijzer van.
8)7

Exploring the world by bicycle! cyclingsilk.wordpress.com


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Kan je het iets beter uitleggen, ik heb geen idee wat je nou precies wilt...

  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Volgens mij wil hij runtime de naam van een variable kiezen. En dat kan niet.

He who knows only his own side of the case knows little of that.


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

std::map dan met een std::string, value pair.

  • IJnte
  • Registratie: Juni 2003
  • Laatst online: 19-05 12:01
Als het niet onder runtime kan moet je dus een database gebruiken. dit is in ons geval te omslachtig.

maar wel bedankt voor jullie reacties.

Exploring the world by bicycle! cyclingsilk.wordpress.com


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

IJnte schreef op 05 oktober 2004 @ 10:27:
Als het niet onder runtime kan moet je dus een database gebruiken. dit is in ons geval te omslachtig.
Wow... Ik mis hier volgens mij een paar denkstappen. Als het niet runtime kan, kan je altijd nog een of andere mapping gebruiken (zie zoijar). Als je de boel ook persistent wilt hebben, onder die mapping, kan je dat ergens gaan opslaan.
En die opslag kan, eventueel, in een database... Maar het hoeft niet, simpelweg een file opslaan kan ook.

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-04 07:04
Je maakt een datatype (class of struct) met de benodigde variabelen erin. Als je gegevens wilt opslaan maak je een nieuwe class/struct aan en die initialiseer je met je data. Omdat je later deze gegevens terug wilt vinden op basis van de naam (zoals ik je verhaal begrijp) moet je een koppeling maken tussen die naam (een string) en de zojuist geinstantieerde class. Dit kan je op een aantal manieren doen. Ik zal er 2 beschrijven.
Na het instantieren van de class heb je een object.
  • Dat object voeg je toe aan een array (of vector, of list). Als je op basis van naam dit object weer wilt vinden, ga je alle elementen in de array af en vergelijkt de naam. Is de naam hetzelfde, heb je je object gevonden. Voordeel van deze methode is ehh... tja het is makkelijk te begrijpen. Nadeel is dat het langzaam is als je veel objecten in de array hebt staan. Ander nadeel is dat het makkelijker en sneller is met de volgende methode.
  • Het object stop je in een associatief array / hashtable / dictionary. Er zijn een hoop woorden voor, maar het verschil in betekenis is in dit geval niet echt belangrijk. Deze datastructuren zorgen er voor dat je niet alle object hoeft af te lopen op zoek naar de juiste. Sommige kunnen aan de hand van de naam direct het goede object teruggeven, andere hoeven maar naar een paar objecten te kijken voor ze de goede hebben.
    Belangrijkste is dat ze werken met key/value pairs. Je geeft aan een hashtable een string en een object om op te slaan. Als je later een object zoekt geef je de naam op. De hashtable haalt een leuk truukje uit op basis van de naam en geeft in 1x je object terug.
In de meeste talen worden dit soort datastructuren standaard meegeleverd.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Sjaaky:
[snip /]
In de meeste talen worden dit soort datastructuren standaard meegeleverd.
Kortom:
Zoijar:
std::map dan met een std::string, value pair.
;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
behalve dan dat de TS een groep variabelen heeft, dus misschien een multimap<string, value> nodig heeft.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1