• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

unsigned int czy std::size_t?

0 głosów
101 wizyt
pytanie zadane 7 marca w C i C++ przez whiteman808 Gaduła (4,660 p.)
Kiedy lepiej używać typu std::size_t a kiedy unsigned int? Tworzę klasę linked_list, a konkretnie metody insert i remove_at i mnie zastanawia czy lepiej w nich użyć size_t czy tego drugiego typu i dlaczego.

1 odpowiedź

+3 głosów
odpowiedź 7 marca przez Gynvael Coldwind Nałogowiec (30,510 p.)
Do wielkości i ilości najlepiej używać size_t, bo to gwarantuje na każdej architekturze, że da się w to włożyć maksymalną  wielkość obiektu, lub maksymalną liczbę unikatowych obiektów (tudzież indeks obiektu w takim zbiorze). W praktyce na "normalnych współczesnych komputerach" size_t jest 64-bitowym unsigned integerem.

Natomiast unsigned int jest, na "normalnych współczesnych komputerach" 32-bitową zmienną, więc ma ograniczenie do 4 miliardów "czegoś" lub obiektów o wielkość 4GB (minus 1 bajt). Nie ma generalnie powodu, żeby tego używać do liczby / indeksu obiektów, czy wielkości obiektów – wprowadza się wtedy sztuczne ograniczenia.

Co za tym idzie, dobrą praktyką jest używanie size_t do wielkości/indeksów/liczby obiektów, chyba, że jest jakiś bardzo bardzo dobry powód, żeby tego nie robić.

Podobne pytania

0 głosów
1 odpowiedź 1,140 wizyt
pytanie zadane 30 marca 2016 w C i C++ przez enigmatycznyclay Bywalec (2,450 p.)
0 głosów
5 odpowiedzi 3,757 wizyt
pytanie zadane 29 stycznia 2016 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
0 głosów
1 odpowiedź 271 wizyt

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...