Tablice dynamiczne

0

Czy da się w prosty sposób (bez kopiowania zawartości do tablicy pomocniczej) usunąć np. 153 element tablicy dynamicznej?

0

A po co kopiować do tablicy pomocnicznej??

Robisz tak.
If Nr_do_Us

0

Zamiast Lenght(Tablica)-1 mozna sprobowac (dla dynamicznych) High(Tablica). Moze bedzie szybciej. A kopiowanie mozna tez zrobic Move (tez moze szybciej ale nie wiem)

0

Dla stringow jest TStringList. Dla innych typow chyba nietrudno napisac sobie klase np TIntegerList z metodami Add, Insert i Delete.

//sorry zxc. niechcacy zmienilem Twoj post zamiast na niego odpowiedziec, co gorsza usunąłem Twój tekst. pq

zxc pytał o listę dwukierunkową w Delphi w tym usunetym tekście

Tu zxc :-) (pq - jak to zrobiłeś :| ) a było to tak:
"chodziło mi bardziej o to czy da się zrobić to tak jak w listach dwukierunkowych (wskaźniki :-8 ) tzn zwalniam pamięć jakiegoś elementu, a elementy poprzedni i następny łączę. Mniej operacji, szybsze działanie.

//tu pq - jak to zrobilem? jestem moderatorem i moge pisac w cudzych postach. a tym razem pomylily mi sie ikonki i klinalem w edycje zamiast w odpowiedz. sorry jeszcze raz.
[pq = widzę, że nie tylko mnie się to zdarza - mV]

0

"chodziło mi bardziej o to czy da się zrobić to tak jak w listach dwukierunkowych (wskaźniki :-8 ) tzn zwalniam pamięć jakiegoś elementu, a elementy poprzedni i następny łączę. Mniej operacji, szybsze działanie.

no pewnie to podstawowa zaleta list dwukierunkowych !
Załóżmy że Next, i Prev to pola z adresami do następopnego i poprzedniego elementu, a Current to adres elementu bieżącego.
[code]
Current.Prev.Next := Current^.Next;
Current.Next.Prev := Current^.Prev;
Dispose(Current);
Dec(Ilosc);
[/code]

1 użytkowników online, w tym zalogowanych: 0, gości: 1