Avatar billede teepee Nybegynder
15. februar 2010 - 10:41 Der er 2 kommentarer og
1 løsning

Pointerliste til multidimensionelt array af objekter (C++)

jeg har en som består af en række integers og en funktion getSign() som afkoder værdierne af de forskellige intergers og returnerer et specialtegn i en string:
class field{int fieldType; int fieldOccupied; int....  string getSign();};


jeg har nu min main hvor jeg definerer
field b[20][20]; // altså et multidimensional array af field's


array'et er loadet med værdier og jeg står nu i en situation hvor at jeg gerne vil lave en liste over 16 field-objekter som har en special tilstand. Da disse felter kan ændre værdier vil jeg gerne blot holde pointerreferencer til dem, men min syntax fungerer slet ikke.

Hvordan definerer jeg et array af 16 pointere af typen field og hvordan peger jeg på 16 "tilfældige" felter i mit array (b)? Og hvordan læser jeg pointerobjektets værdier og benytter funktionen?
Avatar billede oddi Nybegynder
15. februar 2010 - 10:59 #1
Har du proevet at bruge STL containers i stedet for b[][]...

std::map maaske ?
Avatar billede teepee Nybegynder
15. februar 2010 - 11:15 #2
Jeg forstår ikke hvor du vil hen? Jeg skal ikke ændre mit array, da felternes position betyder noget for mig, men jeg skal bruge en miniliste som udpeger nogle bestemte felter for mig, så jeg i nogle tilfælde slipper for at loope alle felterne igennem.
Avatar billede teepee Nybegynder
15. februar 2010 - 19:14 #3
Fandt selv ud af det:
lavende en
field* centers[16];
det blev fyldt op med:
centers[z++]=&b[x][y];
og hernæst kan funktionen kaldes med:
centers[z]->getType();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester