- Mitglied seit
- 09.11.2002
- Beiträge
- 880
- Reaktionen
- 0
Hallo.
Bisher habe ich bei der Indizierung von Arrays immer int, bzw halt unsigned int genommen. Inzwischen habe ich aber den Eindruck, daß man für solche Dinge besser size_t oder size_type nehmen sollte.
Was ist denn der Unterschied zwischen den beiden? Diverse Hilfeseiten im Internet schreiben, daß size_type meistens nur eine typedef von size_t ist. Allerdings ist size_type in der string Klasse enthalten. size_t weiß ich jetzt gar nicht wo das definiert ist. Ist size_type also nur die C++ Variante von size_t?
Und wo verwende ich diese Typen genau? Ich habe zB eine Funktion, der wird eine Zahl übergeben, >= 0. Verwende ich dafür unsigned int oder size_t? Diese übergebende Zahl gibt an, mit wievielen "Würfeln" die Funktion würfeln soll. Es ist also eine Mengenangabe.
Der Rückggabewert der Funktion ist das Ergebnis des Würfelns, also eine Summe, keine Mengenangabe. Rein von meinem Verständnis der Lesbarkeit des Codes sollte der Rückgabewert also ein unsigned int sein, eine "echte Zahl", während die Mengenangabe dann eben so ein size_t sein sollte.
Danke für ein paar klärende Worte!
Bisher habe ich bei der Indizierung von Arrays immer int, bzw halt unsigned int genommen. Inzwischen habe ich aber den Eindruck, daß man für solche Dinge besser size_t oder size_type nehmen sollte.
Was ist denn der Unterschied zwischen den beiden? Diverse Hilfeseiten im Internet schreiben, daß size_type meistens nur eine typedef von size_t ist. Allerdings ist size_type in der string Klasse enthalten. size_t weiß ich jetzt gar nicht wo das definiert ist. Ist size_type also nur die C++ Variante von size_t?
Und wo verwende ich diese Typen genau? Ich habe zB eine Funktion, der wird eine Zahl übergeben, >= 0. Verwende ich dafür unsigned int oder size_t? Diese übergebende Zahl gibt an, mit wievielen "Würfeln" die Funktion würfeln soll. Es ist also eine Mengenangabe.
Der Rückggabewert der Funktion ist das Ergebnis des Würfelns, also eine Summe, keine Mengenangabe. Rein von meinem Verständnis der Lesbarkeit des Codes sollte der Rückgabewert also ein unsigned int sein, eine "echte Zahl", während die Mengenangabe dann eben so ein size_t sein sollte.
Danke für ein paar klärende Worte!


