C ++ stdcopy

C ++ stdcopy
„Po określaniu pozycji początkowej i zakończenia źródła wszystkie elementy w tym zakresie zostaną skopiowane do określonego miejsca docelowego. C ++ STL zapewnia kilka wariantów kopii (), które umożliwiają przeprowadzanie operacji kopiowania na różne sposoby, każde z unikalnym użyciem. Wszystkie z nich opisano w nagłówku algorytmu. Funkcje te są wyjaśnione w tym artykule do użytku w regularnym programowaniu."

Przykład 1: Za pomocą metody copy () i copy_n ()

Kopiuj (start_iter1, end_iter1, start_iter2):Ogólna funkcja kopiowania, kopia (strat_iter1, end_iter, start_iter2), służy do przenoszenia klastra z jednego kontenera do drugiego. Potrzebuje trzech argumentów:

Start Iter1: Punkt wyjścia do kopiowania elementów jest wskazany przez wskaźnik Start Iterer, który wskazuje na początek pojemnika źródłowego.

End Iterer: Urządzenie wskazujące do końca kontenera źródłowego, z którego należy skopiować elementy.

start iter2: Odniesienie do rozpoczęcia docelowego kontenera, z którego należy skopiować elementy.

copy_n (start_iter1, num, start_iter2): Liczbę komponentów, które należy skopiować do docelowego pojemnika można określić za pomocą tej metody kopiowania. Ponadto akceptuje następujące trzy argumenty:

Start iter1: Identyfikator początkowego pojemnika źródłowego, z którego należy skopiować elementy.

NUM: Liczba całkowita wskazująca liczbę liczb, które należy przenieść do pojemnika docelowego, zaczynając od Start Iter1. Gdy podano liczbę ujemną, nic się nie dzieje.

Start iter2: punkt początkowy kontenera docelowego, zidentyfikowany przez adres startowy adres.

Kod tej ilustracji jest dołączony do przymocowanego zrzutu ekranu.

W przykładzie tutaj zawarliśmy trzy główne biblioteki C++. Ten algorytm biblioteki odgrywa istotną rolę w tym programie, ponieważ zapewnia dostęp do funkcji STD :: Kopiuj. Następnie w programie użyliśmy przestrzeni nazw. Deklaracja przy użyciu przestrzeni nazw po prostu wskazuje, że wszystkie obiekty w przestrzeni nazw STD powinny być dostępne w zakresie, w którym jest obecny bez wymagania prefiksu STD ::.

Następnie mamy w środku główną metodę programu, w której zadeklarowaliśmy zmienną „VEC_1” klasy wektora i zainicjowaliśmy ją z zestawem wartości liczbowych. Zdefiniowaliśmy również kolejne dwie zmienne jako „VEC_2” i „VEC_3”. Zadeklarowaliśmy te zmienne z wektorami docelowymi. Następnie wdrożyliśmy metodę kopii (), która przyjmuje trzy argumenty „VEC_1.Rozpocznij ”,„ Vect_1.koniec ”i„ vect_2.zacznij ”, aby skopiować dwa pierwsze wartości wektorów.

Aby wydrukować skopiowane wektory, wykorzystaliśmy pętlę dla dla każdego kopiowanego elementu wektora i wyświetliliśmy elementy wektorowe. Następnie użyliśmy metody copy_n (), która wyświetli pierwsze pięć elementów wektorów. Do drukowania skopiowane elementy wektorowe dla pętli są wykorzystywane jak wyżej.

Wyjście wygenerowane metodą kopii () i copy_n () jest następujące:

Przykład 2: Za pomocą metody copy_if () i copy_backward ()

copy_if (): Jak sugeruje nazwa, ta funkcja kopiuje zgodnie z wynikiem „warunku.„Jest to podawane przy pomocy funkcji dostarczającej wartość logiczną jako czwarty argument. Ta funkcja wymaga czterech argumentów, z których trzy są identyczne z figurami w copy () i jednej dodatkowej funkcji, która, jeśli zwróci true, określa, czy liczba jest zduplikowana.

copy_backward (): Podczas korzystania z tej funkcji elementy są kopiowane do docelowego kontenera wstecz, dopóki wszystkie liczby nie zostaną skopiowane. Start_iter2 to miejsce, w którym zaczyna się proces kopiowania, ale dochodzi do tyłu. Używa też tej samej obrony jak kopia ().

Kod tej ilustracji jest dołączony do przymocowanego zrzutu ekranu.

W pierwszym etapie tego programu wstawiliśmy nasze biblioteki do pobrania funkcji C ++. Następnie deklarujemy wektor jako v1 i zainicjujemy wektor z liczbami całkowitych. Zadeklarowaliśmy inne zmienne jako V2 i V3, które są wektorami docelowymi. Następnie mamy funkcję copy_if (), która kopiuje tylko liczby nieparzyste z wektorów. Następnie kopia backward () służy do kopiowania pierwszych trzech elementów, z czwartą pozycją końcową. Wydrukowaliśmy skopiowane elementy wektorowe za pomocą pętli.

Wyjście generowane metodą copy_if () i copy_backward () jest następujące:

Przykład 3: Za pomocą metody inserter ()

Przed wykonaniem akcji Copy () chwyćmy składnię inserter ().

# copy (strat_iter1, end_iter1, inserter (Container & x, typename Container :: Iterator It));

Korzystamy z inserter () jako miejsca docelowego, do którego chcemy przenieść elementy kontenera. Inserter () potrzebuje dwóch wejść. Pierwszy to arbitralny pojemnik, a drugi jest iteratorem wewnątrz pojemnika.

Oddaje instancję Iteratora Insert, który obecnie funkcjonuje z dowolnym rodzajem kontenera. Korzystając z tej funkcji opakowania, można utworzyć instancje iteratora. Może to być trudne i utrudniać ogólne programowanie przed koniecznością poznania dokładnego rodzaju kontenera podczas wpisywania nazwy procentowej iteratora. Korzystając z tej funkcji, możesz skorzystać z automatycznej dedukcji parametrów szablonu i poprosić kompilator automatycznie dopasowany do właściwych typów.

Kod tej ilustracji jest dołączony do przymocowanego zrzutu ekranu.

Tutaj zaczęliśmy od naszej głównej metody. Wewnątrz zadeklarowaliśmy wektor v1 i ustawiliśmy wektory z wartościami liczbowymi. Z Iteratora C ++ stworzyliśmy obiekt „ITR”. Ponadto zadeklarowaliśmy inną zmienną, v2, w naszym programie. Następnie wywołaliśmy insert () wewnątrz funkcji kopiowania, która kopiuje elementy wektorowe poprzez iterację. Ostatecznie mamy pętlę dla dla wydrukowania skopiowanych elementów określonych wektorów.

Wyjście generowane metodą inserter () jest następujące:

Wniosek

W artykule omówiliśmy funkcje STD :: Kopiuj, które obsługuje C ++. Wykazano cztery metody ze składnią i programem. Różnią się parametry i funkcje każdego podejścia. Te techniki są dostępne w pliku nagłówka dla algorytmu.