C++ <array> back-Funktion

C++ Container-Klasse <array>


Bei verschiedenen Operationen mit Arrays,backist eine sehr praktische Funktion, die zumAbrufen des letzten Elements verwendet wird。

backist eine Memberfunktion von Container-Klassen, die verwendet wird, umdas letzte Element des Containers zurückzugeben. Sie ist äquivalent zuat(size()-1)oderoperator[](size()-1), aber mit klarerer Semantik.

backbietet eine intuitive Möglichkeit, auf das letzte Element eines Containers zuzugreifen.

Wortdefinitionen: backbedeutet "back", d. h., das letzte (hinterste) Element abzurufen.


Grundlegende Syntax und Parameter

backist eine Memberfunktion der Containerklasse, und ihr Aufruf ist sehr unkompliziert; sie benötigt keine Parameter.

Syntaxformat

reference back();
const_reference back() const;

Parameterbeschreibung

  • Parameter: Keine Parameter
    • backakzeptiert keine Parameter.

Funktionsbeschreibung

  • Rückgabewert: gibt das letzte Element des Containers alsReferenzzurück. Wenn der Container ein konstanter Container ist, gibt es eine konstante Referenz zurück.
  • Wirkung: gibt das letzte Element des Containers zurück (Indexsize()-1Element an Position).
  • Hinweis: Das Array darf nicht leer sein, daher ist der AufrufbackEs ist sicher.

Beispiel

Lass uns das anhand einer Reihe von Beispielen gründlich meistern.backVerwendung.

Beispiel 1: Grundlegende Verwendung - das letzte Element abrufen

Beispiel

#include <iostream>
#include <array>

int main() {
    // 1. Ein Array erstellen und initialisieren
    std::array<int, 5> numbers = {10, 20, 30, 40, 50};

    std::cout << "Die Größe des Arrays ist: " << numbers.size() << std::endl;

    // 2. Verwende back(), um das letzte Element zu erhalten
    std::cout << "Das letzte Element (back): " << numbers.back() << std::endl;
    std::cout << "Verwenden von at(size()-1): " << numbers.at(numbers.size() - 1) << std::endl;
    std::cout << "Verwenden von [size()-1]: " << numbers[numbers.size() - 1] << std::endl;

    return 0;
}

Erwartete Ausgabe:

array的大小是: 5
最后一个元素 (back): 50
使用 at(size()-1): 50
使用 [size()-1]: 50

Codeanalyse:

  1. numbers.back()gibt das letzte Element zurück50。
  2. Es undnumbers.at(numbers.size()-1)undnumbers[numbers.size()-1]gibt denselben Wert zurück, aber mit expliziterer Semantik.

Beispiel 2: Ändern des Werts des letzten Elements

backEs gibt eine Referenz zurück, sodass es verwendet werden kann, um den Wert des Elements zu ändern.

Beispiel

#include <iostream>
#include <array>
#include <string>

int main() {
    std::array<std::string, 3> tasks = {"C++ lernen", "Hausaufgaben machen", "Dokumentation lesen"};

    std::cout << "Vor der Änderung, die letzte Aufgabe: " << tasks.back() << std::endl;

    // Verwende back(), um eine Referenz zu erhalten und das Element zu ändern
    tasks.back() = "Projekt abschließen";

    std::cout << "Nach der Änderung, die letzte Aufgabe: " << tasks.back() << std::endl;

    return 0;
}

Erwartete Ausgabe:

Before modification, the last task: Read the documentation
After modification, the last task: Complete the project

Codeanalyse:

  • tasks.back() = "完成项目";Der Wert des letzten Elements wird durch die Referenz geändert.
  • back()gibt eine modifizierbare lvalue-Referenz zurück.

Beispiel 3: back mit sort verwenden, um Max-/Min-Werte zu erhalten

Nach dem Sortieren,back()Gibt den maximalen Wert zurück.

Beispiel

#include <iostream>
#include <array>
#include <algorithm>

int main() {
    std::array<int, 5> numbers = {30, 10, 50, 20, 40};

    std::cout << "Vor dem Sortieren: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // Sortieren
    std::sort(numbers.begin(), numbers.end());

    std::cout << "Nach dem Sortieren: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    std::cout << Minimalwert (vorne): << numbers.front() << std::endl;
    std::cout << Maximalwert (hinten): << numbers.back() << std::endl;

    return 0;
}

Erwartete Ausgabe:

排序前: 30 10 50 20 40
排序后: 10 20 30 40 50
最小值 (front): 10
最大值 (back): 50

Codeanalyse:

  • Nach dem Sortieren,front()Gibt den Minimalwert zurück,back()Gibt den maximalen Wert zurück.
  • Dies ist eine einfache Möglichkeit, den Maximal-/Minimalwert zu erhalten.

C++ Container-Klasse <array>

Weitere Erweiterungen