2-dimensional container i STL?

Tags:    c++

Hej udviklere,

en vector er jo en container der kan det samme som en array plus meget mere. Men et array kan også være 2-dimensionalt, altså int array[][]; Er der en container i Standard Library der understøtter dette?



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Det nærmeste du kommer er mig bekendt et map, men jeg er ikke helt sikker på om den har den funktionalitet som du søger. En map fungerer således at det første objekt er din nøgle og det andet din værdi, hvor du efterfølgende kan foretage nogle hurtige opslag og søgninger på din nøgle.

Fold kodeboks ind/udKode 


Alternativt kan du lave et objekt som er ansvarlig for at opretholde de to dimensioner og gemme det objekt i din vector.

Fold kodeboks ind/udKode 


På denne måde har du en meget mere fleksibel struktur, og du kan eventuelt lave method overloading, så du direkte kan sammenligne elementerne i listen for eksempel ved at lade den første "dimension" (som er first variablen i mit eksempel) være din nøgle.

Fold kodeboks ind/udKode 


Din anden dimension kan så (imodsætning til et to-dimensionelt array, int array[][]) være af vilkårlig type afhængig af definitionen på dit ItemPair.

Hth



Indlæg senest redigeret d. 14.09.2006 18:20 af Bruger #10448
Du laver bare en std::vector af std::vector af whatever:

std::vector<std::vector<whatever > >Int2dVector;

Elller list af list eller ...

FFI: http://damb.dk/container.php



Tak skal I have, begge to. Min ide er at lave en enkel model af et landkort, delt op i kvadratiske felter, med udbredelsen af forskellige geografiske parametre defineret i hvert felt - jeg tror konceptet med en vector af vector will do the trick, idet jeg skal bruge random access.
Det er super at have udvikleren.dk i baghånden til sådan noget her :)



Da Bertel har skrevet med en kommentar giver jeg alle UP'ene til Jess. Mange tak!



t