Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die <array> Kopfzeile enthält drei Nicht-Member-Funktionen, getswap, und to_array die auf Arrayobjekten arbeiten.
get
Gibt einen Verweis auf das angegebene Element des Arrays zurück.
template <std::size_t Index, class Type, std::size_t Size>
constexpr Type& get(std::array<Type, Size>& arr) noexcept;
template <std::size_t Index, class Type, std::size_t Size>
constexpr const Type& get(const std::array<Type, Size>& arr) noexcept;
template <std::size_t Index, class Type, std::size_t Size>
constexpr Type&& get(std::array<Type, Size>&& arr) noexcept;
template <std::size_t Index, class Type, std::size_t Size>
constexpr const Type&& get(const std::array<Type, Size>&& arr) noexcept;
Vorlagenparameter
Index
Der Offset des Elements.
Type
Der Typ eines Elements.
Size
Die Anzahl der -Elemente im Array.
Parameter
arr
Das Array, aus dem die Auswahl erfolgt.
Beispiel
#include <array>
#include <iostream>
using namespace std;
typedef array<int, 4> MyArray;
int main()
{
MyArray c0 { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (const auto& e : c0)
{
cout << " " << e;
}
cout << endl;
// display odd elements " 1 3"
cout << " " << get<1>(c0);
cout << " " << get<3>(c0) << endl;
}
0 1 2 3
1 3
swap
Eine Spezialisierung von Nicht-Member-Vorlagen, bei der std::swap zwei Arrayobjekte ausgetauscht werden.
template <class Type, std::size_t Size>
void swap(std::array<Type, Size>& left, std::array<Type, Size>& right);
Vorlagenparameter
Type
Der Typ eines Elements.
Size
Die Größe des Arrays.
Parameter
left
Das erste auszutauschende Array.
right
Das zweite auszutauschende Array.
Hinweise
Die Vorlagenfunktion führt left.swap(right) aus.
Beispiel
// std__array__swap.cpp
// compile with: /EHsc
#include <array>
#include <iostream>
typedef std::array<int, 4> Myarray;
int main()
{
Myarray c0 = { 0, 1, 2, 3 };
// display contents " 0 1 2 3"
for (Myarray::const_iterator it = c0.begin();
it != c0.end(); ++it)
std::cout << " " << *it;
std::cout << std::endl;
Myarray c1 = { 4, 5, 6, 7 };
c0.swap(c1);
// display swapped contents " 4 5 6 7"
for (Myarray::const_iterator it = c0.begin();
it != c0.end(); ++it)
std::cout << " " << *it;
std::cout << std::endl;
swap(c0, c1);
// display swapped contents " 0 1 2 3"
for (Myarray::const_iterator it = c0.begin();
it != c0.end(); ++it)
std::cout << " " << *it;
std::cout << std::endl;
return (0);
}
0 1 2 3
4 5 6 7
0 1 2 3
to_array
Konvertiert ein integriertes Array in ein std::array Objekt.
// C++20
template <class Type, std::size_t Size>
constexpr std::array<std::remove_cv_t<Type>, Size> to_array(Type (&arr)[Size]);
// C++20
template <class Type, std::size_t Size>
constexpr std::array<std::remove_cv_t<Type>, Size> to_array(Type (&&arr)[Size]);
Vorlagenparameter
Type
Der Typ eines Elements.
Size
Die Größe des Eingabearrays.
Parameter
arr
Das eingabearray, das für die Konvertierung verwendet wird.
Beispiel
// std_to_array.cpp
// Requires /std:c++20 or later
#include <array>
#include <iostream>
int main()
{
int arr1[]{ 1, 2, 3 };
std::array<int, 3> arr2 = std::to_array(arr1);
std::cout << "std::to_array(arr1):\n";
for (const auto& i : arr2)
{
std::cout << i << " ";
}
std::cout << std::endl;
// The size is 7 as it includes the null terminator
std::array<char, 7> arr3 = std::to_array("string");
std::cout << "\nstd::to_array(\"string\"):\n";
for (const auto& i : arr3)
{
std::cout << i << " ";
}
std::cout << std::endl;
}
std::to_array(arr1):
1 2 3
std::to_array("string"):
s t r i n g