Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Nagłówek <array> zawiera trzy funkcje inne niż składowe, get, swapi to_array , które działają na obiektach tablicy .
get
Zwraca odwołanie do określonego elementu tablicy.
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;
Parametry szablonu
Index
Przesunięcie elementu.
Type
Typ elementu.
Size
Liczba elementów w tablicy.
Parametry
arr
Tablica do wyboru.
Przykład
#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
Specjalizacja std::swap szablonu innego niż składowa, która zamienia dwa obiekty tablicowe .
template <class Type, std::size_t Size>
void swap(std::array<Type, Size>& left, std::array<Type, Size>& right);
Parametry szablonu
Type
Typ elementu.
Size
Rozmiar tablicy.
Parametry
left
Pierwsza tablica do zamiany.
right
Druga tablica do zamiany.
Uwagi
Funkcja szablonu left.swap(right)wykonuje polecenie .
Przykład
// 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
Konwertuje wbudowaną tablicę std::array na obiekt.
// 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]);
Parametry szablonu
Type
Typ elementu.
Size
Rozmiar tablicy wejściowej.
Parametry
arr
Tablica wejściowa używana do konwersji.
Przykład
// 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