Jak używać struktur danych w rdzy

Jak używać struktur danych w rdzy
Rust wykorzystuje bibliotekę kolekcji do obsługi i wdrażania kilku wspólnych struktur danych. Kolekcja odnosi się do zbioru jednej lub więcej wartości przechowywanych w pamięci sterty. Oznacza to, że rozmiar kolekcji nie musi być znany przed kompilacją.

Kolekcje są bardzo przydatne przy wdrażaniu elastycznego i ogólnego przechowywania danych. Większość kolekcji może kurczyć się lub rosnąć w programie.

Pozwól nam zbadać różne struktury danych w języku programowania rdzy i jak wykonywać podstawowe operacje.

Tutaj mamy cztery główne kategorie dla kolekcji rdzy:

  1. Sekwencje
  2. Mapy
  3. Zestawy
  4. Misc

Omówmy szczegółowo każdą kategorię.

Kolekcje sekwencji

Tutaj omówimy trzy rodzaje kolekcji sekwencji w Rust:

  1. VEC
  2. Vecdeque
  3. Połączona lista

VEC

VEC lub wektor to przylegająca tablica uprawy, która przechowuje wartości na liście, jeden po drugiej w pamięci.

Aby utworzyć nowy pusty wektor, użyj nowej metody, jak pokazano poniżej:

Niech mut vec = vec :: new ();

Następnie możesz dodać elementy do wektora za pomocą metody push:

VEC.push (1);
VEC.push (2);

Aby wydrukować wektor, użyj cechy debugowania, jak podano poniżej:

println!(":? ", vec);

Usuń element w wektorze za pomocą metody usuwania i indeksu elementu do usunięcia, jak pokazano poniżej:

VEC.Usuń (0); // Usuń element przy indeksie 0
println!(":? ", vec);

Vecdeque

Vecdeque lub wektor podwójnie zagraniczny jest niekonkurennym buforem pierścienia do uprawy. Możemy utworzyć nowy pusty bufor przy użyciu nowej metody podanej poniżej:

Użyj STD :: kolekcje :: vecdeque;
Niech mut deque = vecdeque :: new ();

Vecdeque używa metod push_front () i push_back () do dodawania elementów do przodu lub tylnej części deque:

Deque.push_front (1);
Deque.push_front (2);
Deque.push_front (3);
// Odprzyj
Deque.push_back (4);
Deque.push_back (5);

Aby wydrukować elementy Vecdeque, użyj cechy debugowania:

Println!(":? ", deque);

Aby usunąć elementy z vecdeque, użyj metod pop_front () i pop_back (), aby usunąć element odpowiednio z przodu i tyłu deque.

Poniższy przykład znajduje się poniżej:

Deque.pop_back ();
Deque.pop_front ();
println!(":? ", deque);

Powinno to powrócić, jak pokazano poniżej:

[3, 2, 1, 4, 5]
[2, 1, 4]

Połączona lista

To jest podwójnie połączona lista z własnymi węzłami. Jest to przydatne, gdy potrzebujesz wektora lub deque o nieznanym rozmiarze.

Aby utworzyć nową pustą LinkedList, użyj następujących:

Użyj STD :: Collections :: LinkedList;
Let Mut lnk = LinkedList :: new ();

Używamy metod push_front () i push_back () do dodawania elementów odpowiednio do przodu i tyłu listy powiązanej.

Na przykład:

Let Mut lnk = LinkedList :: new ();
lnk.push_front (3);
lnk.push_front (2);
lnk.push_front (1);
lnk.push_back (4);
lnk.push_back (5);
println!(":? ", lnk);

Poprzedni przykład powinien zwrócić w następujący sposób:

[1, 2, 3, 4, 5]

Aby usunąć elementy z listy połączonej, użyj metod POP_Front i Pop_Back:

lnk.pop_back ();
lnk.pop_front ();
println!(":? ", lnk);

Wyjście jest tak, jak pokazano:

[1, 2, 3, 4, 5] // wcześniej
[2, 3, 4] // po

Kolekcje map

Druga kategoria kolekcji rdzy na mapach, a one obejmują:

  1. Hashmap
  2. Btreemap

Hashmap

Hashmap umożliwia przechowywanie mapowania par kluczowych. Używa funkcji haszu, aby określić, w jaki sposób klucze i wartości są przechowywane w pamięci. Są bardzo przydatne, gdy potrzebujesz przechowywania powiązanych wartości. Używa klucza zamiast indeksu do pobierania wartości.

Aby utworzyć nową hashmap, użyj następującej składni:

Użyj STD :: Collections :: Hashmap;
Niech mapa = hashmap :: new ();

Aby wstawić pary wartości kluczowej do hashmapu, użyj następującej metody wstawienia:

mapa.wstaw (0, „kątowy”);
mapa.wstaw (1, „React”);
mapa.wstaw (3, „mithril”);
mapa.wstaw (4, „vue”);

Aby wydrukować hashmap, użyj następujących:

println!(":? ", mapa);

Powinno to powrócić, jak pokazano poniżej:

1: „React”, 2: „svelte”, 3: „mithril”, 4: „vue”, 0: „Angular”

Należy pamiętać, że klucz i wartość mogą być dowolnym obsługiwanym typem.

Aby usunąć elementy z hashmap, użyj metody remove () w następujący sposób:

mapa.usuń (1);

Btreemap

Zauważasz, że hashmap nie jest sortowany. Jeśli szukasz posortowanej mapy, użyj Btreemap. Każdy element w btreemapie jest przechowywany we własnym węźle na album.

Aby utworzyć nowy Btreemap, użyj następujących czynności:

Użyj STD :: kolekcje :: Btreemap;
Niech Mut Btree = Btreemap :: new ();

Aby dodać elementy, użyj następującej metody wstawki.

Btree.wstaw („klucz”, „wartość”);

Aby usunąć element, użyj metody Usuń jako:

Btree.usuń („klucz”);

Ustaw kolekcje

Następna kategoria kolekcji rdzy to zestawy. Te typy pochodzą z teorii zestawu i obejmują:

  1. Hashsets
  2. Btreeset

Hashsets

Hashset jest ściśle podobny do hashmap. Oznacza to, że jest to ustalona forma hashmapu i nie zezwala na duplikaty wartości.

Aby utworzyć nowy skrót, użyj następującej składni:

Użyj STD :: Collections :: Hashset;
Let Mut set = hashset :: new ();

Użyj wkładki i usuń metody, aby dodać i usuwać elementy odpowiednio z hashmap.

ustawić.wstaw („A”);
ustawić.usuń („a”);

Btreeset

Jest to ustalona implementacja Btreemap. Możemy stworzyć nowy BTREESET, jak pokazano poniżej:

Użyj STD :: kolekcje :: Btreeset;
Niech mut set = btreeset :: new ();

Wstaw i usuń elementy, jak podane poniżej:

ustawić.wstaw („A”);
ustawić.usuń („a”);

Kolekcje MISC

W kolekcjach MISC jest tylko jeden typ.

  1. BinaryHeap

BinaryHeap

Sterta binarna pozwala wdrożyć dużo drzewa binarnego. Możesz utworzyć nową stertę binarną, jak podano poniżej:

Użyj STD :: kolekcje :: binaryHeap;
Niech mut heap = binaryHeap :: new ();

Aby dodać elementy, użyj następującej metody push:

sterta.push („item”);

Aby usunąć wartość, użyj następującej metody POP:

sterta.Muzyka pop();

Metoda POP usuwa największy element w stosie.

Wniosek

Ten przewodnik obejmuje popularne i przydatne struktury danych oraz ich podstawowe operacje w języku programowania rdzy. Ponadto szczegółowo omówiliśmy cztery główne kategorie kolekcji rdzy, takie jak sekwencje, mapy, zestawy i MISC. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby uzyskać więcej wskazówek i informacji.