C++ <array> size-Funktion
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ück
size_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 <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:
- Die Größe des Arrays wird zur Compile-Zeit bestimmt und durch den Template-Parameter festgelegt.
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 <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, von
size()beginnt, bis 1 herunterzuzählen, dann greift es auf[i-1]。 - des Arrays
size()Jaconstexpr, kann zur Kompilierzeit ausgewertet werden. - Dies unterscheidet sich von vector, dessen Größe
size()keine Kompilierzeitkonstante ist.
Beispiel 3: Verwenden von constexpr size
des Arrayssize()Es ist constexpr und kann zur Compile-Zeit verwendet werden.
Beispiel
#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:
Weitere Erweiterungen