Co to jest dynamiczna tablica?
Tablica dynamiczna to struktura danych używana w programowaniu komputerowym, która zawiera wiele obiektów obliczeniowych jako pojedynczej grupy i może być zmieniona w testamencie, aby pomieścić różne liczby obiektów. Grupa jest przechowywana w jednym ciągłym bloku pamięci, więc dostęp do elementów jest wydajny i szybki. Tablice dynamiczne są również nazywane wektorami lub listami, w zależności od języka komputerowego, w którym są używane. Pomimo tych nazw, jakakolwiek konkretna lista lub wektor może nie być tablicą dynamiczną, ponieważ listy i wektory mogą być zaimplementowane inaczej niż tablice i od siebie.
C ++ zawiera pojedynczą klasę dynamicznej tablicy o nazwie Vector, która znajduje się w grupie klas zwanych standardową biblioteką szablonów. Do tablicy, która popiera tę klasę, mogą uzyskać dostęp do iteratorów lub indeksów. Jego zdolność do zmiany rozmiaru na żądanie jest wielką zaletą, ale może zwabić programistów w fałszywe poczucie bezpieczeństwa, ponieważ nie jest tak solidna, jak się wydaje. Dynamiczna tablica wspierająca wektor nie może zapewnić, że ACŻądania CESS są ważne. Podobnie jak tablice statyczne, dynamiczne tablice mogą mieć problemy z sprawdzaniem i uszkodzeniem pamięci, jeśli program próbuje uzyskać dostęp do pamięci, która nie została dla nich przydzielona.
Java zawiera trzy odrębne klasy dynamiczne: wektor, arraylist i copyonWriteArrayList. Do elementów w tablicy są dostępne tylko przez indeksy, a próba dostępu do indeksów poza tablicą zwykle nie powoduje problemów z uszkodzeniem pamięci. Klasa Java Vector jest mniej więcej równoważna klasie wektorowej C ++ i nie jest synchronizowana, aby umożliwić dostęp przez wiele wątków. ArrayList i CopyOnWriteArrayList, natomiast są bezpieczne dla wątków. Spośród tych trzech CopyOnWriteArrayList jest najbardziej pracochłonną klasą, ponieważ całkowicie odtwarza dynamiczną tablicę za każdym razem, gdy nowa wartość jest zapisywana do tablicy.
Dynamiczne tablice są wdrażane zasadniczo w ten sam sposób, niezależnie od obliczeńWymagany językiem ER, ale w zależności od określonego języka mogą być na nim zbudowane inne możliwości. Podobnie jak tablice statyczne, tablice dynamiczne nie ograniczają rodzaju obiektu, który można przechowywać w nich, o ile wszystkie są tym samym typem obiektu. Programista nigdy nie musi bezpośrednio uzyskiwać dostępu do tablicy dynamicznej; Zawsze można to zrobić za pośrednictwem klasy, która owija tablicę w celu łatwego użycia. Właściwe użycie tych tablic może pomóc programistowi z organizacją danych wewnętrzną, a także w tworzeniu zrozumiałego kodu, który nadaje się do łatwej konserwacji.