DString - Strängbibliotek för C++

DString - En kort beskrivning

DString är en klass skriven i C++ som underlättar stränghantering. Allt minne allokeras dynamiskt utan att användaren behöver bekymra sig om det. Massor av metoder och operatorer har implementerats och förhoppningsvis så hittar du inget som du saknar. De två filerna är en header-fil och en källkods-fil. För mer information se någon av dessa filer. För en utförlig dokumentation se header-filen eller den skrivna dokumentationen.

DString - Lite detaljer

Om du vill veta lite mer specifika detaljer kring DString har du hittat rätt avsnitt. Till att börja med bygger implementationen på template konstruktionen i C++, vilket gör att den interna representationen av enskilda tecken är godtycklig. Normalt använder man väl char, men man skulle t.ex. kunna använda wchar_t för att representera ett enskilt tecken.

För att optimera prestandan på alla metoder och operatorer har en del åtgärder vidtagits.

  1. Längden på den aktuella strängen lagras som ett heltal, vilket också gör det möjligt för strängen att innehålla NULL-tecken.
  2. Vid operationer som inte ändrar så mycket på den aktuella strängens längd görs försök att slippa kopiera all data till en ny buffert. Detta gör t.ex. att metoder som Trim aldrig kopierar någon data. Däremot kan det vara så att man inte utnyttjar hela bufferten efter anrop till sådana metoder.
  3. Om man verkligen vill försäkra sig om att allt minne utnyttjas maximalt kan man tvinga fram en optimal justering med metoden Adjust.
  4. Samtliga metoder som inte ändrar något i den interna representationen har deklarerats som const.

För att nämna några av fördelarna med denna implementation följer nedan en liten lista.

  1. Automatisk hantering av minne, även om exceptions uppstår
  2. Överlagrade operatorer
  3. Möjlighet att jämföra strängar med/utan hänsyn till stora/små bokstäver
  4. Högpresterande implementationer (i den mån det är möjligt) av samtliga metoder
  5. Bra möjligheter för att söka efter delsträngar
  6. Indexering både framifrån, med index 0 och uppåt, samt bakifrån med index -1 för sista tecknet, -2 för näst sista o.s.v.

Filer och dokumentation




Tillbaka
Valid HTML 4.0 Valid CSS
Senast ändrad 2002-09-18 14:18 av bergner