Stdmove w C ++

Stdmove w C ++

Podobnie jak wiele innych funkcji C ++, funkcja STD :: Move () jest unikalna w swojej funkcjonalności. Jak sama nazwa wskazuje, wykorzystano ją do przeniesienia wartości jednej zmiennej do drugiej, jednocześnie usuwając wartość pierwszej zmiennej. Może być używany z funkcją push_back () lub bez niego w bibliotece wektorowej. Zacznijmy więc artykuł, aby sprawdzić, czy to działa. Utwórz nowy plik C ++ i otwórz.

Przykład 01:

Zacznijmy od pierwszego przykładu. Dodano główne pliki nagłówka dla tego kodu, i.mi., iostream, wektor, ciąg i użyteczność. Musimy dodać standardową przestrzeń nazw „STD.”Tak więc dwie zmienne typu ciągów, S1 i S2, są inicjowane w funkcji Main (). Oto iterator typu wektorowego „V” typu ciągów. Obiekt iteratora „V” służy do zastosowania funkcji push_back () na S1. Oznacza to, że zmienna wartość S1 została zepchnięta do ostatniej lokalizacji wektora. Ponieważ wektor jest pusty, zostanie najpierw włożony. Nadchodzi „std :: ruch ()”, aby nie utworzyć innego obiektu wektora, aby dodać do niego wartość. Tak więc funkcja push_back () używa w niej funkcji „std :: ruch ()”, aby przenieść ciąg S2 do wektora „v” w ostatniej lokalizacji. Oświadczenie Cout jest tutaj, aby poinformować nas o wektorze wynikającego. Pętla „for” jest wykorzystywana do uzyskania wartości z wektora jako listy i wyświetlania ich na terminalu za pośrednictwem klauzuli „cout”. Kod kończy się tutaj. Zapisz i zamknij plik, aby iść naprzód.

włączać
#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
String s1 = "hello";
String s2 = „World”;
wektorv;
v.push_back (s1);
v.push_back (std :: ruch (s2));
Cout << "Overall Vector:";
dla (String & X: V)
Cout << " << x << '\n';
powrót 0;

Kod musi zostać skompilowany przed jego wykonaniem, aby rozwiązać jakikolwiek błąd. Dlatego do tej pory kompilator G ++ został wykorzystany. „„./A.Out „Everlasting Instrukcja jest tutaj, aby wykonać nasz kod C ++. Możesz zobaczyć, że wynik pokazuje wektor dwóch strun.

Przykład 02:

Rzućmy okiem na kolejny przykład używania std :: mOVE () w C ++ w najprostszy możliwy sposób. Kod rozpoczyna się od tych samych bibliotek nagłówka, i.mi., iostream, wektor, ciąg i użyteczność. Następnie standardowa przestrzeń nazw „STD” jest niezbędna, aby uniknąć używania słowa kluczowego „STD” w kodzie. Funkcja main () rozpoczyna się od inicjalizacji zmiennej ciągu „s” o wartości ciągu. Wektor „VEC” typu ciągów jest deklarowany jako pusty. Ponieważ jest tylko 1 ciąg, wynikowy wektor zostanie skonstruowany za pomocą tej pojedynczej zmiennej. Tak więc funkcja push_back () jest wywoływana za pomocą obiektu wektorowego „VEC.„Ta funkcja kopiuje ciąg
„S”, które należy umieścić na ostatnim miejscu wektora „VEC.„Nie usuwa wartości zmiennej„ s ”. Instrukcja Cout wyświetla wartość ciągów „S” na powładzie po użyciu funkcji push_back (). Ponownie ta sama wartość jest przenoszona do ostatniej lokalizacji wektora wykorzystującej funkcję „przenieś” w metodzie „push_back ()”. Instrukcja Cout pokaże wartość „S” po użyciu metody „przenieś”. W ostatnim klauzula Cout jest wykorzystywana do pokazania wynikowych wartości wektora „VEC” na powładzie.

#włączać
#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
String s = "Linux";
wektorVEC;
VEC.push_back (s);
Cout << "After Copy String: " << s << endl;
VEC.push_back (ruch (s));
Cout << "After Move String: " << s << endl;
Cout<<"Vector Elements: "<powrót 0;

Kod został wykonany. Po pierwsze, pokazuje wartość „S” po skopiowaniu go do wektora „VEC.”Po użyciu ruchu () zmienna„ S ”stała się pusta. W ostatnim wyświetlono wartość wektora.

Przykład 03:

Miejmy ostatni, ale nie najmniejszy przykład Move (). Uwzględniono pojedynczą bibliotekę i standardowy przestrzeń nazw. Funkcja Main () rozpoczyna się od inicjalizacji dwóch wektorów typu liczb całkowitych, V1 i V2, mając pewien zakres. Pierwsza instrukcja Cout pokazuje, że wyświetlimy wartość pierwszego wektora v1. Pętla „for” jest tutaj, aby iterować wartości pierwszego wektora v1 z pozycji wyjściowej do jego końca, używając w nim funkcji „rozmiaru”. Na każdej iteracji wyświetla każdą wartość z wektora. To samo zostało zrobione dla wektora v2, aby wyświetlać wartości całkowitymi przez pętlę „dla”.

Funkcja STD :: Move () wykorzystuje w niej funkcję początkowa (). Pierwszy parametr, v1.początek () pokazuje wartość początkowa z wektora v1, która ma być umieszczona w wektorze v2. Drugi parametr „V1.początek () + 4 ”pokazuje ostatnią lokalizację V1, którą możemy sumować w wektor v2. Trzeci parametr „v2.początek () + 1 ”, pokazuje punkt początkowy wektora v2, w którym musimy dodać lub wymienić wartości. Ostatnia pętla „for” jest tutaj, aby iterować nowo zaktualizowany wektor v2 i wyświetlić go na skorcie.

#włączać
za pomocą przestrzeni nazw Std;
int main ()
wektorv1 2, 4, 6, 8, 10;
wektorv2 0, 0, 0, 0, 0;
Cout <<"Vector 1: ";
dla (int i = 0; iCout << " " << v1[i];
Cout << endl;
Cout <<"Vector 2: ";
dla (int i = 0; iCout << " " << v2[i];
Cout << endl;
std :: ruch (v1.początek (), v1.początek () + 4, v2.początek () + 1);
Cout <<"Vector 2 After move: ";
dla (int i = 0; iCout << " " << v2[i];
Cout << endl;
powrót 0;

Po wykonaniu oba wektory są najpierw wyświetlane osobno. Następnie zaktualizowany wektor V2 pokazuje aktualizowane 4 wartości.

Wniosek:

W tym artykule wyjaśniono przykłady funkcji STD :: Move () w C++. Wykorzystaliśmy funkcję push_back (), aby lepiej opracować w naszych kodach. Omówiliśmy koncepcję wektorów w naszych kodach, aby wykorzystać funkcję ruchu.