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

Różnice między tablicami.

Object Storage Arubacloud
0 głosów
1,960 wizyt
pytanie zadane 22 sierpnia 2015 w C i C++ przez szymek6786 Początkujący (260 p.)
Jaka jest różnica między vector, array, a tablicą dynamiczną w działaniu ? Z czego najlepiej korzystać ?

Ucze się dopiero od niedawna c++ więc proszę o wyjaśnienie w miarę prostym językiem.

2 odpowiedzi

+2 głosów
odpowiedź 22 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
Vektor jest klasą.

Automatycznie on dopasuje tablicę to twoich potrzeb.

Jeśli np. dodajesz do vektora ileś tam elementow to vektor powiększa swoją tablicę. (tworzy nową i kopiuje a starą usuwa)

Tablica dynamiczna jest najzwyklejszą tablicą w C++.

Raz się ją przydziela i już ot tak powiększyć się nie da. (Trzeba stworzyć nową tablicę, skopiować a starą usunąć, ręcznie)

 

Tu masz więcej informacji:
http://edu.pjwstk.edu.pl/wyklady/pro/scb/PRG2CPP_files/node149.html
+2 głosów
odpowiedź 22 sierpnia 2015 przez niezalogowany

No więc wszystko po kolei ;)

  • Tablica dynamiczna - to jest taka tablica, która może nie znać swojej wielkości przed skompilowaniem programu, czyli że na przykład wpisujesz ile ma mieć tablica szufladek (indexów) w czasie działania programu. Ze zwykłą tablicą tak się nie da, zwykła musi od razu wiedzieć ile ma mieć miejsc.
  • Vector - nie jest zwykłą tablicą. Jest kontenerem, pojemnikiem, tak jak powiedział Dorion300, jest klasą (a raczej szablonem klasy), która zawiera tablicę. Jak dodajesz to tej tablicy jakiś element (vector nie zna swojej wielkości na początku, wielkość ciągle się zmienia), to tablica właśnie się kopiuje, robi tablicę o jeden element większą, kopiuje wszystko ze starej tablicy, usuwa starą tablicę no i do tego nowego miejsca daje jakąś-tam-wartość, to co tam wpiszesz ;)
  • Array - to też klasa szablonowa, taka jak vector, ale się różni od vectora różnymi szczegółami, na przykład ma stały rozmiar.

Każda się różni jak sam widzisz :) Jak masz jeszcze jakieś pytania na ten temat, to napisz w komentarzu ;)

komentarz 1 czerwca 2016 przez 1naswiecie Początkujący (410 p.)
Co w takim razie najczęściej używać?
tablice dynamiczne lokowane przy new delete?

Vector, array?
komentarz 2 czerwca 2016 przez niezalogowany

No wiesz, to jest zależne od potrzeby. Jeśli potrzebujesz taką tablicę, której elementy będziesz ciągle dopisywać w trakcie programu, to najlepiej użyć vectora. Jeśli w trakcie programu będziesz musiał stworzyć tablicę o iluś miejscach (ale nie wiesz ilu przed włączeniem się programu, dopiero jakoś w trakcie, na przykład wtedy, gdy użytkownik sobie wybierze jakąś liczbę), to możesz użyć do tego tablicy dynamicznej. A array to jest to samo co zwykła tablica, tylko że z dodatkowymi funkcjami, takie jak np. nazwaTablicy.size() (zwraca ilość elementów tablicy) http://en.cppreference.com/w/cpp/container/array Jak to pisze na stronie cpp0x:

Tablice utworzone przy pomocy niniejszego szablonu posiadają taką samą wydajność jak tablice utworzone tradycyjnym zapisem C++, jednak są one bezpieczniejsze i wygodniejsze w użyciu.

Mam nadzieję, że już wiesz o co chodzi ;)

Podobne pytania

+1 głos
1 odpowiedź 165 wizyt
pytanie zadane 30 kwietnia 2018 w JavaScript przez GracjanDogg Użytkownik (840 p.)
0 głosów
2 odpowiedzi 235 wizyt
pytanie zadane 17 listopada 2015 w C i C++ przez Avernis Nałogowiec (27,400 p.)
0 głosów
0 odpowiedzi 144 wizyt

92,584 zapytań

141,433 odpowiedzi

319,668 komentarzy

61,966 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!

...