Dela via


Matris-, list- och kartklasser

För hantering av dataaggregat tillhandahåller klassbiblioteket en grupp samlingsklasser – matriser, listor och kartor – som kan innehålla en mängd olika objekt och fördefinierade typer. Samlingarna är dynamiskt storleksanpassade. Dessa klasser kan användas i valfritt program, oavsett om de är skrivna för Windows eller inte. De är dock mest användbara för att implementera de datastrukturer som definierar dina dokumentklasser i programramverket. Du kan enkelt härleda specialiserade samlingsklasser från dessa, eller så kan du skapa dem baserat på mallklasserna. Mer information om dessa metoder finns i artikeln Samlingar. En lista över mallsamlingsklasserna finns i artikeln Mallklasser för matriser, listor och kartor.

Matriser är endimensionella datastrukturer som lagras sammanhängande i minnet. De stöder mycket snabb slumpmässig åtkomst eftersom minnesadressen för ett visst element kan beräknas genom att multiplicera elementets index med storleken på ett element och lägga till resultatet i matrisens basadress. Men matriser är mycket dyra om du måste infoga element i matrisen, eftersom hela matrisen förbi elementet som infogats måste flyttas för att göra plats för elementet som ska infogas. Matriser kan växa och krympa efter behov.

Listor liknar matriser men lagras på ett helt annat sätt. Varje element i en lista innehåller också en pekare till föregående och nästa element, vilket gör det till en dubbelt länkad lista. Det går mycket snabbt att lägga till eller ta bort objekt eftersom det bara innebär att du ändrar några pekare. Det kan dock vara dyrt att söka i en lista eftersom alla sökningar måste börja i någon av listans slut.

Kartor relaterar ett nyckelvärde till ett datavärde. Till exempel kan nyckeln för en karta vara en sträng och data en pekare i en lista. Du ber kartan att ge dig pekaren som är associerad med en viss sträng. Kartsökningar är snabba eftersom kartor använder hash-tabeller för nyckelsökningar. Det går också snabbt att lägga till och ta bort objekt. Kartor används ofta med andra datastrukturer som hjälpindex. MFC använder en särskild typ av karta som kallas en meddelandekarta för att mappa Windows-meddelanden till en pekare till hanteringsfunktionen för det meddelandet.

Se även

översikt över -klass