C++ <array> size-Funktion

C++ Container-Klasse <array>


sizeEs ist eine der am häufigsten verwendeten und grundlegendsten Funktionen für Arrays, die dazu dient,die Anzahl der Elemente im Container zu ermitteln。

sizeist eine Memberfunktion von Container-Klassen, mit derdie Anzahl der aktuell im Container enthaltenen Elemente zurückgegeben wird. Im Gegensatz zu vector ist die Größe von array fest und wird zur Kompilierungszeit bestimmt.

sizeSie ist die am häufigsten verwendete Funktion bei der Arbeit mit Arrays, eingesetzt in Szenarien wie Schleifendurchlauf und Randprüfung.

Wortdefinitionen: sizebedeutet "size" und gibt die Anzahl der Elemente im Container an.


Grundlegende Syntax und Parameter

sizeEs ist eine Memberfunktion der Container-Klasse, und ihr Aufruf erfordert keine Argumente.

Syntaxformat

constexpr size_type size() const noexcept;

Parameterbeschreibung

  • Parameter: Keine Parameter
    • sizenimmt keine Argumente entgegen.

Funktionsbeschreibung

  • Rückgabewert: gibt zurücksize_typeTyp (normalerweisesize_t), der die Anzahl der Elemente im Container repräsentiert.
  • Wirkung: Gibt eine nicht-negative Ganzzahl zurück, die die Anzahl der fest im Container gespeicherten Elemente repräsentiert.
  • Hinweis: size()Es gibt eine Compile-Zeit-Konstante (constexpr) zurück, die zur Compile-Zeit verwendet werden kann.

Beispiel

Lassen Sie uns dies anhand einer Reihe von Beispielen gründlich meistern.sizeVerwendung.

Beispiel 1: Grundlegende Verwendung – Ermitteln der Anzahl der Elemente

Beispiel

#include <iostream>
#include <array>

int main() {
    // Arrays unterschiedlicher Größe
    std::array<int, 3> small = {1, 2, 3};
    std::array<int, 5> medium = {1, 2, 3, 4, 5};
    std::array<int, 10> large = {};

    std::cout << "Größe des kleinen Arrays: " << small.size() << std::endl;
    std::cout << "Größe des mittleren Arrays: " << medium.size() << std::endl;
    std::cout << "Größe des großen Arrays: " << large.size() << std::endl;

    return 0;
}

Erwartete Ausgabe:

small array 大小: 3
medium array 大小: 5
large array 大小: 10

Codeanalyse:

  1. Die Größe des Arrays wird zur Compile-Zeit bestimmt und durch den Template-Parameter festgelegt.
  2. size()Zurückgegeben wird dieser zur Compile-Zeit bestimmte Wert.

Beispiel 2: Verwendung von size() in einer Schleife

size()Am häufigsten verwendet, um die Schleifeniteration zu steuern.

Beispiel

#include <iostream>
#include <array>

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

    // size() verwenden, um die Schleife zu steuern
    std::cout << "Über alle Elemente iterieren: ";
    for(size_t i = 0; i < numbers.size(); ++i) {
        std::cout << numbers[i] << " ";
    }
    std::cout << std::endl;

    // size() verwenden, um die Grenze für die Rückwärtsdurchquerung zu erhalten
    std::cout << "Rückwärtsdurchquerung: ";
    for(size_t i = numbers.size(); i > 0; --i) {
        std::cout << numbers[i - 1] << " ";
    }
    std::cout << std::endl;

    return 0;
}

Erwartete Ausgabe:

遍历所有元素: 10 20 30 40 50
反向遍历: 50 40 30 20 10

Codeanalyse:

  • numbers.size()gibt 5 zurück, die Schleifenbedingungi < numbers.size()Stellen Sie sicher, dass es nicht außerhalb der Grenzen liegt.
  • Beim Durchlaufen in umgekehrter Reihenfolge, vonsize()beginnt, bis 1 herunterzuzählen, dann greift es auf[i-1]。
  • Beispiel 3: Verwenden von constexpr size

    des Arrayssize()Es ist constexpr und kann zur Compile-Zeit verwendet werden.

    Beispiel

    #include <iostream>
    #include <array>

    // Template-Funktion: Erstellt ein Array mit einer gegebenen Größe
    template<size_t N>
    void printSize(const std::array<int, N>& arr) {
        // size() kann verwendet werden, wo Konstanten zur Compile-Zeit benötigt werden
        constexpr size_t s = arr.size();
        std::cout << "Array size: " << s << std::endl;
    }

    int main() {
        std::array<int, 5> arr = {1, 2, 3, 4, 5};
        printSize(arr);

        return 0;
    }

    Codeanalyse:

    • des Arrayssize()Jaconstexpr, kann zur Kompilierzeit ausgewertet werden.
    • Dies unterscheidet sich von vector, dessen Größesize()keine Kompilierzeitkonstante ist.

    C++ Container-Klasse <array>

    Weitere Erweiterungen