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

C++ Struktura danych: lista, zwracająca Max_Size

Object Storage Arubacloud
0 głosów
164 wizyt
pytanie zadane 22 kwietnia 2017 w C i C++ przez Kurogami12 Bywalec (2,610 p.)
uczę się struktur danych, teraz pracuje nad listą (taka dość prostą, 2kierunkową cykliczną) wiem, że można to zrobić za pomocą biblioteki <list> ale chce samodzielnie napisać swoją własną wersje listy, jednak nie wiem jak zrobić metode która powie mi ile intów(ewentualnie innych typów danych) w pamięci ram może zostać przydzielone dla tego procesu (no czyli to co robi w liście z biblioteki metoda max_size() ) ma ktoś może podpowiedź? nawet nie bardzo wiem co wpisać w google żeby to znaleźć więc jeśli ktoś wie i powie byłbym wdzięczny. :)

2 odpowiedzi

+1 głos
odpowiedź 22 kwietnia 2017 przez criss Mędrzec (172,590 p.)
wybrane 23 kwietnia 2017 przez Kurogami12
 
Najlepsza

Sam się troche zdziwiłem, że std::list w ogóle ma taką metode, bo za wiele sensu to nie ma. Okazuje się, że metoda max_size w przypadku listy istnieje tylko po to, żeby spełniać wymagania kontenerów z biblioteki standardowej. Także w swojej implementacji możesz ją zupełnie pominąć, albo, jeśli bardzo chcesz się trzymać podobieństwa do STL, zwracać maksymalną przyjmowaną wartość przez np. std::size_t (z reguły ten typ jest wykorzystywany do reprezentowania rozmiaru) jak zasugerował ktoś w temacie na SO.

komentarz 22 kwietnia 2017 przez Kurogami12 Bywalec (2,610 p.)
to znaczy chodzi mi raczej o to, że po prostu chce jak najdokładniej nauczyć się struktur danych bo z obserwacji zauważyłem, że są bardzo ważne i dlatego chce je dokładnie rozumieć, umieć napisać i korzystać z nich stosunkowo nazwijmy to "swobodnie", ale tak podejrzewałem, że to raczej użytkowe za bardzo nie jest w programie, ale mimo wszystko uważam, że lepiej jest wiedzieć więcej :p
komentarz 22 kwietnia 2017 przez criss Mędrzec (172,590 p.)
Tutaj nie bardzo jest co więcej wiedzieć. Jeśli wiesz jak wygląda struktura listy, to pewnie rozumiesz (tak założyłem w odpowiedzi) dlaczego max_size w liście nie ma specjalnie sensu. Jest to "łańcuch" kolejnych elementów z których każdy przechowuje wskaźnik na następny ew. poprzedni (zależnie czy to jest lista jedno- czy dwu-kierunkowa). Podejrzewam, że już o tym wiesz, ale dla jasności wolałem dopisać, bo powinienem o tym wspomnieć w odpowiedzi.
1
komentarz 22 kwietnia 2017 przez mokrowski Mędrzec (155,460 p.)
Zwracający rzeczywiste wartości max_size() mógłby mieć sens jakbyś miał nietypowy alokator pamięci dla listy (np. pool). Można wtedy w nim zwrócić rzeczywistą maksymalną wielkość danych które obsłuży Twoja implementacja listy. Ale to raczej zastosowania embedded i mała ilość RAM lub nietypowa jej charakterystyka.

W ćwiczebnej lmplementacji zwróć std::limits<size_t>::max() i "nie wnikaj" :-)
komentarz 23 kwietnia 2017 przez Kurogami12 Bywalec (2,610 p.)
Tak, rozumiem to :) Dziękuje za pomoc wszystkim
+1 głos
odpowiedź 22 kwietnia 2017 przez tangarr Mędrzec (154,820 p.)
Metoda std::list::max_size() zwraca teoretyczną ilość elementów jaką może pomieścić lista.
Na dobrą sprawę możesz zapełnić całą pamięć RAM przy pomocy jednej listy.
Jeżeli zaimplementujesz swobodny dostęp do elementów po indeksie to twoja implementacja max_size() może zwracać maksymalną wartość zmiennej indeksującej (np. INT_MAX, LONG_MAX, ...)

Podobne pytania

0 głosów
1 odpowiedź 171 wizyt
pytanie zadane 27 października 2017 w C i C++ przez Partyjny Obywatel (1,170 p.)
0 głosów
1 odpowiedź 362 wizyt
pytanie zadane 21 stycznia 2018 w C i C++ przez eldoxz Nowicjusz (140 p.)
0 głosów
1 odpowiedź 148 wizyt
pytanie zadane 7 listopada 2016 w SQL, bazy danych przez Filip31411 Dyskutant (8,820 p.)

92,556 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,942 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...